diff --git a/docs/fontbakery-reports/rubikbrokenfax-report.html b/docs/fontbakery-reports/rubikbrokenfax-report.html new file mode 100644 index 0000000..6b6ccd2 --- /dev/null +++ b/docs/fontbakery-reports/rubikbrokenfax-report.html @@ -0,0 +1,2681 @@ + + + + + FontBakery Check Report + + + +
+ +
+ Fontbakery Technical Report +
+
+ +
+

If you think a check is flawed or have an idea for a check, please file an issue at https://github.com/fonttools/fontbakery/issues and remember to include a pointer to the repo and branch you're checking.

+

Summary

+ + + + + + + + + + + + + + + + + + + + + + + + + +
💥 ERROR🔥 FAIL⚠️ WARN⏩ SKIPℹ️ INFO✅ PASS
048659161
0%2%4%36%5%89%
+ +

Note: The following loglevels were omitted in this report: SKIP, INFO, PASS, DEBUG

+ +

Meaning of check results:

+ + + +

If you get ERRORs, please help us improve the tool by reporting them at our + issue tracker.

+ +

(but other kinds of bug reports and/or feature requests + are also always welcome, of course!)

+ +

FontBakery version: 0.10.4

+ +

Section: Google Fonts

+🔥🔥🔥🔥⚠️⚠️⚠️⚠️⚠️⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩ℹ️ℹ️ℹ️ℹ️ℹ️ℹ️ℹ️ +

Checking OS/2 achVendID.

+
Check ID: com.google.fonts/check/vendor_id
+ +
⚠️ RubikBrokenFax-Regular.ttf
  • ⚠️ WARN

    OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx +[code: unknown]

    +
+

Check for codepoints not covered by METADATA subsets.

+
Check ID: com.google.fonts/check/metadata/unreachable_subsetting
+ +
⚠️ RubikBrokenFax-Regular.ttf
  • ⚠️ WARN

    The following codepoints supported by the font are not covered by +any subsets defined in the font's metadata file, and will never +be served. You can solve this by either manually adding additional +subset declarations to METADATA.pb, or by editing the glyphset +definitions.

    +
      +
    • U+02C7 CARON: try adding one of: tifinagh, yi, canadian-aboriginal
    • +
    • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
    • +
    • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
    • +
    • U+02DB OGONEK: try adding one of: yi, canadian-aboriginal
    • +
    • U+02DD DOUBLE ACUTE ACCENT: not included in any glyphset definition
    • +
    • U+0306 COMBINING BREVE: try adding one of: tifinagh, old-permic
    • +
    • U+030A COMBINING RING ABOVE: try adding syriac
    • +
    • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee
    • +
    • U+030C COMBINING CARON: try adding one of: tai-le, cherokee
    • +
    • U+0312 COMBINING TURNED COMMA ABOVE: not included in any glyphset definition
    • +
    • U+0326 COMBINING COMMA BELOW: not included in any glyphset definition
    • +
    • U+0327 COMBINING CEDILLA: not included in any glyphset definition
    • +
    • U+0328 COMBINING OGONEK: not included in any glyphset definition
    • +
    • U+0335 COMBINING SHORT STROKE OVERLAY: not included in any glyphset definition
    • +
    • U+0337 COMBINING SHORT SOLIDUS OVERLAY: not included in any glyphset definition
    • +
    • U+0338 COMBINING LONG SOLIDUS OVERLAY: not included in any glyphset definition
    • +
    • U+2021 DOUBLE DAGGER: try adding adlam
    • +
    • U+2030 PER MILLE SIGN: try adding adlam
    • +
    • U+2070 SUPERSCRIPT ZERO: not included in any glyphset definition
    • +
    • U+2075 SUPERSCRIPT FIVE: not included in any glyphset definition
    • +
    • U+2076 SUPERSCRIPT SIX: not included in any glyphset definition
    • +
    • U+2077 SUPERSCRIPT SEVEN: not included in any glyphset definition
    • +
    • U+2078 SUPERSCRIPT EIGHT: not included in any glyphset definition
    • +
    • U+2079 SUPERSCRIPT NINE: not included in any glyphset definition
    • +
    • U+207D SUPERSCRIPT LEFT PARENTHESIS: not included in any glyphset definition
    • +
    • U+207E SUPERSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition
    • +
    • U+2080 SUBSCRIPT ZERO: not included in any glyphset definition
    • +
    • U+2081 SUBSCRIPT ONE: not included in any glyphset definition
    • +
    • U+2082 SUBSCRIPT TWO: not included in any glyphset definition
    • +
    • U+2083 SUBSCRIPT THREE: not included in any glyphset definition
    • +
    • U+2084 SUBSCRIPT FOUR: not included in any glyphset definition
    • +
    • U+2085 SUBSCRIPT FIVE: not included in any glyphset definition
    • +
    • U+2086 SUBSCRIPT SIX: not included in any glyphset definition
    • +
    • U+2087 SUBSCRIPT SEVEN: not included in any glyphset definition
    • +
    • U+2088 SUBSCRIPT EIGHT: not included in any glyphset definition
    • +
    • U+2089 SUBSCRIPT NINE: not included in any glyphset definition
    • +
    • U+208D SUBSCRIPT LEFT PARENTHESIS: not included in any glyphset definition
    • +
    • U+208E SUBSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition
    • +
    • U+212E ESTIMATED SYMBOL: not included in any glyphset definition
    • +
    • U+2153 VULGAR FRACTION ONE THIRD: not included in any glyphset definition
    • +
    • U+2154 VULGAR FRACTION TWO THIRDS: not included in any glyphset definition
    • +
    • U+215B VULGAR FRACTION ONE EIGHTH: not included in any glyphset definition
    • +
    • U+215C VULGAR FRACTION THREE EIGHTHS: not included in any glyphset definition
    • +
    • U+215D VULGAR FRACTION FIVE EIGHTHS: not included in any glyphset definition
    • +
    • U+215E VULGAR FRACTION SEVEN EIGHTHS: not included in any glyphset definition
    • +
    • U+FB01 LATIN SMALL LIGATURE FI: not included in any glyphset definition
    • +
    • U+FB02 LATIN SMALL LIGATURE FL: not included in any glyphset definition
    • +
    +

    Or you can add the above codepoints to one of the subsets supported by the font: cyrillic, cyrillic-ext, hebrew, latin, latin-ext, math, menu, symbols [code: unreachable-subsetting]

    +
+

METADATA.pb: Check URL on copyright string is the same as in repository_url field.

+
Check ID: com.google.fonts/check/metadata/consistent_repo_urls
+ +
🔥 RubikBrokenFax-Regular.ttf
  • 🔥 FAIL

    Repository URL is https://github.com/NaN-xyz/Rubik-Filtered

    +

    But: OFL text has 'https:/' and HTML description has 'github.com/NaN-xyz/Glyph-Filters' +[code: mismatch]

    +
+

EXPERIMENTAL CHECK - Since 2023/Nov/02
Shapes languages in all GF glyphsets.

+
Check ID: com.google.fonts/check/glyphsets/shape_languages
+ +
🔥 RubikBrokenFax-Regular.ttf
  • 🔥 FAIL

    GF_Latin_Core glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| haw_Latn (Hawaiian) | Some base glyphs were missing: ʻ | +| ^ | Shaper produced a .notdef | +| mh_Latn (Marshallese) | Some base glyphs were missing: Ḷ, ḷ, Ṃ, ṃ, Ṇ, ṇ, Ọ, ọ | +| ^ | Some mark glyphs were missing: ◌̣ | +| ^ | Shaper produced a .notdef | +| scn_Latn (Sicilian) | Some base glyphs were missing: Ḍ, ḍ | +| ^ | Shaper produced a .notdef | +| teo_Latn (Teso) | Some base glyphs were missing: Ɔ, Ɛ, Ɨ, Ʉ, ɔ, ɛ, ɨ, ʉ, ᵃ, ᵉ, ᵋ, ᵒ, ᵓ, ᵘ, ᶤ, ᶶ, ⁱ | +| ^ | Shaper produced a .notdef |

    +

    [code: failed-language-shaping]

    +
  • 🔥 FAIL

    GF_Cyrillic_Plus glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| tg_Cyrl (Tajik) | Some base glyphs were missing: ҳ | +| ^ | Shaper produced a .notdef | +| uz_Cyrl (Uzbek (Cyrillic)) | Some base glyphs were missing: ҳ | +| ^ | Shaper produced a .notdef |

    +

    [code: failed-language-shaping]

    +
  • ⚠️ WARN

    GF_Latin_Core glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| lg_Latn (Ganda) | No variant glyphs were found for Eng | +| dyo_Latn (Jola-Fonyi) | No variant glyphs were found for Eng | +| ny_Latn (Nyanja) | No variant glyphs were found for Eng | +| wo_Latn (Wolof) | No variant glyphs were found for Eng |

    +

    [code: warning-language-shaping]

    +
  • ⚠️ WARN

    GF_Cyrillic_Plus glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| ku_Cyrl (Kurdish) | No exemplar glyphs were defined for language Kurdish |

    +

    [code: warning-language-shaping]

    +
+

Is there kerning info for non-ligated sequences?

+
Check ID: com.google.fonts/check/kerning_for_non_ligated_sequences
+ +
⚠️ RubikBrokenFax-Regular.ttf
  • ⚠️ WARN

    GPOS table lacks kerning info for the following non-ligated sequences:

    +
    - f + f
    +
    +- f + i
    +
    +- i + f
    +
    +- f + l
    +
    +- l + f
    +
    +- i + l [code: lacks-kern-info]
    +
    +
+

Check font follows the Google Fonts vertical metric schema

+
Check ID: com.google.fonts/check/vertical_metrics
+ +
🔥 RubikBrokenFax-Regular.ttf
  • 🔥 FAIL

    The sum of hhea.ascender + abs(hhea.descender) + hhea.lineGap is 1185 when it should be at least 1200 [code: bad-hhea-range]

    +
+

METADATA.pb: Designers are listed correctly on the Google Fonts catalog?

+
Check ID: com.google.fonts/check/metadata/designer_profiles
+ +
🔥 RubikBrokenFax-Regular.ttf
  • 🔥 FAIL

    Designer Luke Prowse still does not have an avatar image. Please provide one. [code: missing-avatar]

    +
+

On a family update, the DESCRIPTION.en_us.html file should ideally also be updated.

+
Check ID: com.google.fonts/check/description/family_update
+ +
⚠️ RubikBrokenFax-Regular.ttf
  • ⚠️ WARN

    The DESCRIPTION.en_us.html file in this family has not changed in comparison to the latest font release on the google/fonts github repo. +Please consider mentioning note-worthy improvements made to the family recently. [code: description-not-updated]

    +
+

Ensure fonts have ScriptLangTags declared on the 'meta' table.

+
Check ID: com.google.fonts/check/meta/script_lang_tags
+ +
⚠️ RubikBrokenFax-Regular.ttf
  • ⚠️ WARN

    This font file does not have a 'meta' table. [code: lacks-meta-table]

    +
+

Section: Universal

+⚠️⚠️⏩⏩⏩⏩⏩⏩⏩ℹ️ℹ️ +

Check if each glyph has the recommended amount of contours.

+
Check ID: com.google.fonts/check/contour_count
+ +
⚠️ RubikBrokenFax-Regular.ttf
  • ⚠️ WARN

    This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

    +

    The following glyphs do not have the recommended number of contours:

    +
    - Glyph name: exclam	Contours detected: 50	Expected: 2
    +
    +- Glyph name: quotedbl	Contours detected: 8	Expected: 2
    +
    +- Glyph name: numbersign	Contours detected: 24	Expected: 2
    +
    +- Glyph name: dollar	Contours detected: 17	Expected: 1, 3 or 5
    +
    +- Glyph name: percent	Contours detected: 50	Expected: 5
    +
    +- Glyph name: ampersand	Contours detected: 19	Expected: 1, 2 or 3
    +
    +- Glyph name: quotesingle	Contours detected: 20	Expected: 1
    +
    +- Glyph name: parenleft	Contours detected: 25	Expected: 1
    +
    +- Glyph name: parenright	Contours detected: 24	Expected: 1
    +
    +- Glyph name: asterisk	Contours detected: 11	Expected: 1 or 4
    +
    +- Glyph name: plus	Contours detected: 29	Expected: 1
    +
    +- Glyph name: comma	Contours detected: 5	Expected: 1
    +
    +- Glyph name: hyphen	Contours detected: 4	Expected: 1
    +
    +- Glyph name: period	Contours detected: 18	Expected: 1
    +
    +- Glyph name: slash	Contours detected: 38	Expected: 1
    +
    +- Glyph name: zero	Contours detected: 83	Expected: 2 or 3
    +
    +- Glyph name: one	Contours detected: 6	Expected: 1
    +
    +- Glyph name: two	Contours detected: 18	Expected: 1
    +
    +- Glyph name: three	Contours detected: 20	Expected: 1
    +
    +- Glyph name: four	Contours detected: 32	Expected: 1 or 2
    +
    +- Glyph name: five	Contours detected: 30	Expected: 1
    +
    +- Glyph name: six	Contours detected: 59	Expected: 1 or 2
    +
    +- Glyph name: seven	Contours detected: 36	Expected: 1
    +
    +- Glyph name: eight	Contours detected: 21	Expected: 3
    +
    +- Glyph name: nine	Contours detected: 19	Expected: 1 or 2
    +
    +- Glyph name: colon	Contours detected: 14	Expected: 2
    +
    +- Glyph name: semicolon	Contours detected: 31	Expected: 2
    +
    +- Glyph name: less	Contours detected: 37	Expected: 1
    +
    +- Glyph name: equal	Contours detected: 8	Expected: 2
    +
    +- Glyph name: greater	Contours detected: 78	Expected: 1
    +
    +- Glyph name: question	Contours detected: 30	Expected: 2
    +
    +- Glyph name: at	Contours detected: 48	Expected: 2
    +
    +- Glyph name: A	Contours detected: 93	Expected: 2
    +
    +- Glyph name: B	Contours detected: 126	Expected: 2 or 3
    +
    +- Glyph name: C	Contours detected: 13	Expected: 1
    +
    +- Glyph name: D	Contours detected: 18	Expected: 2
    +
    +- Glyph name: E	Contours detected: 9	Expected: 1
    +
    +- Glyph name: F	Contours detected: 13	Expected: 1
    +
    +- Glyph name: G	Contours detected: 24	Expected: 1
    +
    +- Glyph name: H	Contours detected: 32	Expected: 1
    +
    +- Glyph name: I	Contours detected: 31	Expected: 1
    +
    +- Glyph name: J	Contours detected: 11	Expected: 1
    +
    +- Glyph name: K	Contours detected: 31	Expected: 1 or 2
    +
    +- Glyph name: L	Contours detected: 3	Expected: 1
    +
    +- Glyph name: M	Contours detected: 12	Expected: 1
    +
    +- Glyph name: N	Contours detected: 11	Expected: 1
    +
    +- Glyph name: O	Contours detected: 111	Expected: 2
    +
    +- Glyph name: P	Contours detected: 10	Expected: 1 or 2
    +
    +- Glyph name: Q	Contours detected: 24	Expected: 2
    +
    +- Glyph name: R	Contours detected: 80	Expected: 1 or 2
    +
    +- Glyph name: S	Contours detected: 53	Expected: 1
    +
    +- Glyph name: T	Contours detected: 33	Expected: 1
    +
    +- Glyph name: U	Contours detected: 41	Expected: 1
    +
    +- Glyph name: V	Contours detected: 68	Expected: 1
    +
    +- Glyph name: W	Contours detected: 50	Expected: 1 or 2
    +
    +- Glyph name: X	Contours detected: 28	Expected: 1
    +
    +- Glyph name: Y	Contours detected: 15	Expected: 1
    +
    +- Glyph name: Z	Contours detected: 7	Expected: 1
    +
    +- Glyph name: bracketleft	Contours detected: 3	Expected: 1
    +
    +- Glyph name: backslash	Contours detected: 8	Expected: 1
    +
    +- Glyph name: bracketright	Contours detected: 29	Expected: 1
    +
    +- Glyph name: asciicircum	Contours detected: 6	Expected: 1
    +
    +- Glyph name: underscore	Contours detected: 2	Expected: 1
    +
    +- Glyph name: grave	Contours detected: 2	Expected: 1
    +
    +- Glyph name: a	Contours detected: 20	Expected: 2
    +
    +- Glyph name: b	Contours detected: 78	Expected: 2
    +
    +- Glyph name: c	Contours detected: 31	Expected: 1
    +
    +- Glyph name: d	Contours detected: 48	Expected: 2
    +
    +- Glyph name: e	Contours detected: 21	Expected: 2
    +
    +- Glyph name: f	Contours detected: 20	Expected: 1
    +
    +- Glyph name: g	Contours detected: 49	Expected: 2 or 3
    +
    +- Glyph name: h	Contours detected: 63	Expected: 1
    +
    +- Glyph name: i	Contours detected: 31	Expected: 2
    +
    +- Glyph name: j	Contours detected: 9	Expected: 2
    +
    +- Glyph name: k	Contours detected: 115	Expected: 1 or 2
    +
    +- Glyph name: l	Contours detected: 51	Expected: 1
    +
    +- Glyph name: m	Contours detected: 24	Expected: 1
    +
    +- Glyph name: n	Contours detected: 30	Expected: 1
    +
    +- Glyph name: o	Contours detected: 95	Expected: 2
    +
    +- Glyph name: p	Contours detected: 37	Expected: 2
    +
    +- Glyph name: q	Contours detected: 30	Expected: 2
    +
    +- Glyph name: r	Contours detected: 66	Expected: 1
    +
    +- Glyph name: s	Contours detected: 18	Expected: 1
    +
    +- Glyph name: t	Contours detected: 12	Expected: 1
    +
    +- Glyph name: u	Contours detected: 46	Expected: 1
    +
    +- Glyph name: v	Contours detected: 16	Expected: 1
    +
    +- Glyph name: w	Contours detected: 63	Expected: 1
    +
    +- Glyph name: x	Contours detected: 6	Expected: 1
    +
    +- Glyph name: y	Contours detected: 24	Expected: 1
    +
    +- Glyph name: z	Contours detected: 26	Expected: 1
    +
    +- Glyph name: braceleft	Contours detected: 72	Expected: 1
    +
    +- Glyph name: bar	Contours detected: 3	Expected: 1
    +
    +- Glyph name: braceright	Contours detected: 21	Expected: 1
    +
    +- Glyph name: asciitilde	Contours detected: 6	Expected: 1
    +
    +- Glyph name: exclamdown	Contours detected: 6	Expected: 2
    +
    +- Glyph name: cent	Contours detected: 11	Expected: 1 or 2
    +
    +- Glyph name: sterling	Contours detected: 20	Expected: 1 or 2
    +
    +- Glyph name: currency	Contours detected: 23	Expected: 2
    +
    +- Glyph name: yen	Contours detected: 30	Expected: 1 or 2
    +
    +- Glyph name: brokenbar	Contours detected: 28	Expected: 2
    +
    +- Glyph name: section	Contours detected: 12	Expected: 2
    +
    +- Glyph name: dieresis	Contours detected: 13	Expected: 2
    +
    +- Glyph name: ordfeminine	Contours detected: 13	Expected: 2 or 3
    +
    +- Glyph name: guillemotleft	Contours detected: 25	Expected: 2
    +
    +- Glyph name: logicalnot	Contours detected: 6	Expected: 1
    +
    +- Glyph name: registered	Contours detected: 30	Expected: 3 or 4
    +
    +- Glyph name: degree	Contours detected: 10	Expected: 2
    +
    +- Glyph name: plusminus	Contours detected: 7	Expected: 1 or 2
    +
    +- Glyph name: uni00B2	Contours detected: 8	Expected: 1
    +
    +- Glyph name: acute	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni00B5	Contours detected: 81	Expected: 1
    +
    +- Glyph name: paragraph	Contours detected: 14	Expected: 1, 2 or 3
    +
    +- Glyph name: periodcentered	Contours detected: 7	Expected: 1
    +
    +- Glyph name: cedilla	Contours detected: 14	Expected: 1
    +
    +- Glyph name: uni00B9	Contours detected: 14	Expected: 1
    +
    +- Glyph name: ordmasculine	Contours detected: 17	Expected: 2 or 3
    +
    +- Glyph name: guillemotright	Contours detected: 52	Expected: 2
    +
    +- Glyph name: onequarter	Contours detected: 59	Expected: 3 or 4
    +
    +- Glyph name: onehalf	Contours detected: 48	Expected: 3
    +
    +- Glyph name: threequarters	Contours detected: 46	Expected: 3 or 4
    +
    +- Glyph name: questiondown	Contours detected: 9	Expected: 2
    +
    +- Glyph name: Agrave	Contours detected: 95	Expected: 3
    +
    +- Glyph name: Aacute	Contours detected: 95	Expected: 3
    +
    +- Glyph name: Acircumflex	Contours detected: 95	Expected: 3
    +
    +- Glyph name: Atilde	Contours detected: 98	Expected: 3
    +
    +- Glyph name: Adieresis	Contours detected: 120	Expected: 4
    +
    +- Glyph name: Aring	Contours detected: 98	Expected: 3 or 4
    +
    +- Glyph name: AE	Contours detected: 44	Expected: 2
    +
    +- Glyph name: Ccedilla	Contours detected: 14	Expected: 1 or 2
    +
    +- Glyph name: Egrave	Contours detected: 11	Expected: 2
    +
    +- Glyph name: Eacute	Contours detected: 11	Expected: 2
    +
    +- Glyph name: Ecircumflex	Contours detected: 11	Expected: 2
    +
    +- Glyph name: Edieresis	Contours detected: 36	Expected: 3
    +
    +- Glyph name: Igrave	Contours detected: 33	Expected: 2
    +
    +- Glyph name: Iacute	Contours detected: 33	Expected: 2
    +
    +- Glyph name: Icircumflex	Contours detected: 33	Expected: 2
    +
    +- Glyph name: Idieresis	Contours detected: 58	Expected: 3
    +
    +- Glyph name: Eth	Contours detected: 29	Expected: 2
    +
    +- Glyph name: Ntilde	Contours detected: 16	Expected: 2
    +
    +- Glyph name: Ograve	Contours detected: 113	Expected: 3
    +
    +- Glyph name: Oacute	Contours detected: 113	Expected: 3
    +
    +- Glyph name: Ocircumflex	Contours detected: 113	Expected: 3
    +
    +- Glyph name: Otilde	Contours detected: 116	Expected: 3
    +
    +- Glyph name: Odieresis	Contours detected: 138	Expected: 4
    +
    +- Glyph name: multiply	Contours detected: 45	Expected: 1
    +
    +- Glyph name: Oslash	Contours detected: 28	Expected: 2 or 3
    +
    +- Glyph name: Ugrave	Contours detected: 43	Expected: 2
    +
    +- Glyph name: Uacute	Contours detected: 43	Expected: 2
    +
    +- Glyph name: Ucircumflex	Contours detected: 43	Expected: 2
    +
    +- Glyph name: Udieresis	Contours detected: 68	Expected: 3
    +
    +- Glyph name: Yacute	Contours detected: 17	Expected: 2
    +
    +- Glyph name: Thorn	Contours detected: 124	Expected: 1 or 2
    +
    +- Glyph name: germandbls	Contours detected: 37	Expected: 1
    +
    +- Glyph name: agrave	Contours detected: 22	Expected: 3
    +
    +- Glyph name: aacute	Contours detected: 23	Expected: 3
    +
    +- Glyph name: acircumflex	Contours detected: 32	Expected: 3
    +
    +- Glyph name: atilde	Contours detected: 23	Expected: 3
    +
    +- Glyph name: adieresis	Contours detected: 33	Expected: 4
    +
    +- Glyph name: aring	Contours detected: 22	Expected: 4
    +
    +- Glyph name: ae	Contours detected: 27	Expected: 3
    +
    +- Glyph name: ccedilla	Contours detected: 9	Expected: 1 or 2
    +
    +- Glyph name: egrave	Contours detected: 23	Expected: 3
    +
    +- Glyph name: eacute	Contours detected: 24	Expected: 3
    +
    +- Glyph name: ecircumflex	Contours detected: 33	Expected: 3
    +
    +- Glyph name: edieresis	Contours detected: 34	Expected: 4
    +
    +- Glyph name: igrave	Contours detected: 36	Expected: 2
    +
    +- Glyph name: iacute	Contours detected: 37	Expected: 2
    +
    +- Glyph name: icircumflex	Contours detected: 46	Expected: 2
    +
    +- Glyph name: idieresis	Contours detected: 47	Expected: 3
    +
    +- Glyph name: eth	Contours detected: 67	Expected: 2
    +
    +- Glyph name: ntilde	Contours detected: 33	Expected: 2
    +
    +- Glyph name: ograve	Contours detected: 97	Expected: 3
    +
    +- Glyph name: oacute	Contours detected: 98	Expected: 3
    +
    +- Glyph name: ocircumflex	Contours detected: 107	Expected: 3
    +
    +- Glyph name: otilde	Contours detected: 98	Expected: 3
    +
    +- Glyph name: odieresis	Contours detected: 108	Expected: 4
    +
    +- Glyph name: divide	Contours detected: 35	Expected: 3
    +
    +- Glyph name: oslash	Contours detected: 46	Expected: 3
    +
    +- Glyph name: ugrave	Contours detected: 48	Expected: 2
    +
    +- Glyph name: uacute	Contours detected: 49	Expected: 2
    +
    +- Glyph name: ucircumflex	Contours detected: 58	Expected: 2
    +
    +- Glyph name: udieresis	Contours detected: 59	Expected: 3
    +
    +- Glyph name: yacute	Contours detected: 27	Expected: 2
    +
    +- Glyph name: thorn	Contours detected: 101	Expected: 2
    +
    +- Glyph name: ydieresis	Contours detected: 37	Expected: 3
    +
    +- Glyph name: Amacron	Contours detected: 96	Expected: 3
    +
    +- Glyph name: amacron	Contours detected: 21	Expected: 3
    +
    +- Glyph name: Abreve	Contours detected: 113	Expected: 3
    +
    +- Glyph name: abreve	Contours detected: 47	Expected: 3
    +
    +- Glyph name: Aogonek	Contours detected: 22	Expected: 2 or 3
    +
    +- Glyph name: aogonek	Contours detected: 42	Expected: 2
    +
    +- Glyph name: Cacute	Contours detected: 15	Expected: 2
    +
    +- Glyph name: cacute	Contours detected: 34	Expected: 2
    +
    +- Glyph name: Ccircumflex	Contours detected: 15	Expected: 2
    +
    +- Glyph name: ccircumflex	Contours detected: 43	Expected: 2
    +
    +- Glyph name: Cdotaccent	Contours detected: 27	Expected: 2
    +
    +- Glyph name: cdotaccent	Contours detected: 41	Expected: 2
    +
    +- Glyph name: Ccaron	Contours detected: 26	Expected: 2
    +
    +- Glyph name: ccaron	Contours detected: 40	Expected: 2
    +
    +- Glyph name: Dcaron	Contours detected: 31	Expected: 3
    +
    +- Glyph name: dcaron	Contours detected: 52	Expected: 3
    +
    +- Glyph name: Dcroat	Contours detected: 60	Expected: 2
    +
    +- Glyph name: dcroat	Contours detected: 61	Expected: 2
    +
    +- Glyph name: Emacron	Contours detected: 12	Expected: 2
    +
    +- Glyph name: emacron	Contours detected: 22	Expected: 3
    +
    +- Glyph name: Ebreve	Contours detected: 29	Expected: 2
    +
    +- Glyph name: ebreve	Contours detected: 48	Expected: 3
    +
    +- Glyph name: Edotaccent	Contours detected: 23	Expected: 2
    +
    +- Glyph name: edotaccent	Contours detected: 31	Expected: 3
    +
    +- Glyph name: eogonek	Contours detected: 63	Expected: 2
    +
    +- Glyph name: Ecaron	Contours detected: 22	Expected: 2
    +
    +- Glyph name: ecaron	Contours detected: 30	Expected: 3
    +
    +- Glyph name: Gcircumflex	Contours detected: 26	Expected: 2
    +
    +- Glyph name: gcircumflex	Contours detected: 61	Expected: 3 or 4
    +
    +- Glyph name: Gbreve	Contours detected: 44	Expected: 2
    +
    +- Glyph name: gbreve	Contours detected: 76	Expected: 3 or 4
    +
    +- Glyph name: Gdotaccent	Contours detected: 38	Expected: 2
    +
    +- Glyph name: gdotaccent	Contours detected: 59	Expected: 3 or 4
    +
    +- Glyph name: uni0122	Contours detected: 27	Expected: 2
    +
    +- Glyph name: uni0123	Contours detected: 56	Expected: 3 or 4
    +
    +- Glyph name: Hcircumflex	Contours detected: 34	Expected: 2
    +
    +- Glyph name: hcircumflex	Contours detected: 75	Expected: 2
    +
    +- Glyph name: Hbar	Contours detected: 14	Expected: 2
    +
    +- Glyph name: hbar	Contours detected: 42	Expected: 1
    +
    +- Glyph name: Itilde	Contours detected: 36	Expected: 2
    +
    +- Glyph name: itilde	Contours detected: 37	Expected: 2
    +
    +- Glyph name: Imacron	Contours detected: 34	Expected: 2
    +
    +- Glyph name: imacron	Contours detected: 35	Expected: 2
    +
    +- Glyph name: Ibreve	Contours detected: 51	Expected: 2
    +
    +- Glyph name: ibreve	Contours detected: 61	Expected: 2
    +
    +- Glyph name: Iogonek	Contours detected: 80	Expected: 1 or 2
    +
    +- Glyph name: iogonek	Contours detected: 60	Expected: 2 or 3
    +
    +- Glyph name: Idotaccent	Contours detected: 45	Expected: 2
    +
    +- Glyph name: dotlessi	Contours detected: 34	Expected: 1
    +
    +- Glyph name: IJ	Contours detected: 111	Expected: 1 or 2
    +
    +- Glyph name: ij	Contours detected: 40	Expected: 3 or 4
    +
    +- Glyph name: Jcircumflex	Contours detected: 13	Expected: 2
    +
    +- Glyph name: jcircumflex	Contours detected: 48	Expected: 2
    +
    +- Glyph name: uni0136	Contours detected: 34	Expected: 2 or 3
    +
    +- Glyph name: uni0137	Contours detected: 139	Expected: 2 or 3
    +
    +- Glyph name: kgreenlandic	Contours detected: 14	Expected: 1 or 2
    +
    +- Glyph name: Lacute	Contours detected: 5	Expected: 2
    +
    +- Glyph name: lacute	Contours detected: 54	Expected: 2
    +
    +- Glyph name: uni013B	Contours detected: 6	Expected: 2
    +
    +- Glyph name: uni013C	Contours detected: 75	Expected: 2
    +
    +- Glyph name: Lcaron	Contours detected: 7	Expected: 2
    +
    +- Glyph name: lcaron	Contours detected: 55	Expected: 2
    +
    +- Glyph name: Ldot	Contours detected: 9	Expected: 2
    +
    +- Glyph name: ldot	Contours detected: 64	Expected: 2
    +
    +- Glyph name: Lslash	Contours detected: 77	Expected: 1
    +
    +- Glyph name: lslash	Contours detected: 7	Expected: 1
    +
    +- Glyph name: Nacute	Contours detected: 13	Expected: 2
    +
    +- Glyph name: nacute	Contours detected: 33	Expected: 2
    +
    +- Glyph name: uni0145	Contours detected: 14	Expected: 2
    +
    +- Glyph name: uni0146	Contours detected: 54	Expected: 2
    +
    +- Glyph name: Ncaron	Contours detected: 24	Expected: 2
    +
    +- Glyph name: ncaron	Contours detected: 39	Expected: 2
    +
    +- Glyph name: napostrophe	Contours detected: 42	Expected: 2
    +
    +- Glyph name: Eng	Contours detected: 20	Expected: 1
    +
    +- Glyph name: eng	Contours detected: 125	Expected: 1
    +
    +- Glyph name: Omacron	Contours detected: 114	Expected: 3
    +
    +- Glyph name: omacron	Contours detected: 96	Expected: 3
    +
    +- Glyph name: Obreve	Contours detected: 131	Expected: 3
    +
    +- Glyph name: obreve	Contours detected: 122	Expected: 3
    +
    +- Glyph name: Ohungarumlaut	Contours detected: 114	Expected: 4
    +
    +- Glyph name: ohungarumlaut	Contours detected: 121	Expected: 4
    +
    +- Glyph name: OE	Contours detected: 120	Expected: 2
    +
    +- Glyph name: oe	Contours detected: 25	Expected: 3
    +
    +- Glyph name: Racute	Contours detected: 82	Expected: 3
    +
    +- Glyph name: racute	Contours detected: 69	Expected: 2
    +
    +- Glyph name: uni0156	Contours detected: 83	Expected: 3
    +
    +- Glyph name: uni0157	Contours detected: 90	Expected: 2
    +
    +- Glyph name: Rcaron	Contours detected: 93	Expected: 3
    +
    +- Glyph name: rcaron	Contours detected: 75	Expected: 2
    +
    +- Glyph name: Sacute	Contours detected: 55	Expected: 2
    +
    +- Glyph name: sacute	Contours detected: 21	Expected: 2
    +
    +- Glyph name: Scircumflex	Contours detected: 55	Expected: 2
    +
    +- Glyph name: scircumflex	Contours detected: 30	Expected: 2
    +
    +- Glyph name: Scedilla	Contours detected: 20	Expected: 1 or 2
    +
    +- Glyph name: scedilla	Contours detected: 10	Expected: 1 or 2
    +
    +- Glyph name: Scaron	Contours detected: 66	Expected: 2
    +
    +- Glyph name: scaron	Contours detected: 27	Expected: 2
    +
    +- Glyph name: Tcaron	Contours detected: 46	Expected: 2
    +
    +- Glyph name: tcaron	Contours detected: 16	Expected: 2
    +
    +- Glyph name: Tbar	Contours detected: 18	Expected: 1
    +
    +- Glyph name: tbar	Contours detected: 11	Expected: 1
    +
    +- Glyph name: Utilde	Contours detected: 46	Expected: 2
    +
    +- Glyph name: utilde	Contours detected: 49	Expected: 2
    +
    +- Glyph name: Umacron	Contours detected: 44	Expected: 2
    +
    +- Glyph name: umacron	Contours detected: 47	Expected: 2
    +
    +- Glyph name: Ubreve	Contours detected: 61	Expected: 2
    +
    +- Glyph name: ubreve	Contours detected: 73	Expected: 2
    +
    +- Glyph name: Uring	Contours detected: 46	Expected: 3
    +
    +- Glyph name: uring	Contours detected: 48	Expected: 3
    +
    +- Glyph name: Uhungarumlaut	Contours detected: 44	Expected: 3
    +
    +- Glyph name: uhungarumlaut	Contours detected: 72	Expected: 3
    +
    +- Glyph name: Uogonek	Contours detected: 21	Expected: 1
    +
    +- Glyph name: uogonek	Contours detected: 20	Expected: 1
    +
    +- Glyph name: Wcircumflex	Contours detected: 52	Expected: 2
    +
    +- Glyph name: wcircumflex	Contours detected: 75	Expected: 2
    +
    +- Glyph name: Ycircumflex	Contours detected: 17	Expected: 2
    +
    +- Glyph name: ycircumflex	Contours detected: 36	Expected: 2
    +
    +- Glyph name: Ydieresis	Contours detected: 42	Expected: 3
    +
    +- Glyph name: Zacute	Contours detected: 9	Expected: 2
    +
    +- Glyph name: zacute	Contours detected: 29	Expected: 2
    +
    +- Glyph name: Zdotaccent	Contours detected: 21	Expected: 2
    +
    +- Glyph name: zdotaccent	Contours detected: 36	Expected: 2
    +
    +- Glyph name: Zcaron	Contours detected: 20	Expected: 2
    +
    +- Glyph name: zcaron	Contours detected: 35	Expected: 2
    +
    +- Glyph name: longs	Contours detected: 20	Expected: 1
    +
    +- Glyph name: florin	Contours detected: 17	Expected: 1
    +
    +- Glyph name: AEacute	Contours detected: 46	Expected: 3
    +
    +- Glyph name: aeacute	Contours detected: 30	Expected: 4
    +
    +- Glyph name: Oslashacute	Contours detected: 30	Expected: 4
    +
    +- Glyph name: oslashacute	Contours detected: 49	Expected: 4
    +
    +- Glyph name: uni0218	Contours detected: 56	Expected: 2
    +
    +- Glyph name: uni0219	Contours detected: 42	Expected: 2
    +
    +- Glyph name: uni021A	Contours detected: 36	Expected: 2
    +
    +- Glyph name: uni021B	Contours detected: 36	Expected: 2
    +
    +- Glyph name: uni0237	Contours detected: 36	Expected: 1
    +
    +- Glyph name: uni02BC	Contours detected: 24	Expected: 1
    +
    +- Glyph name: circumflex	Contours detected: 12	Expected: 1
    +
    +- Glyph name: caron	Contours detected: 9	Expected: 1
    +
    +- Glyph name: breve	Contours detected: 27	Expected: 1
    +
    +- Glyph name: dotaccent	Contours detected: 10	Expected: 1
    +
    +- Glyph name: ogonek	Contours detected: 6	Expected: 1
    +
    +- Glyph name: tilde	Contours detected: 3	Expected: 1
    +
    +- Glyph name: hungarumlaut	Contours detected: 26	Expected: 2
    +
    +- Glyph name: gravecomb	Contours detected: 2	Expected: 1
    +
    +- Glyph name: acutecomb	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni0302	Contours detected: 12	Expected: 1
    +
    +- Glyph name: tildecomb	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni0306	Contours detected: 27	Expected: 1
    +
    +- Glyph name: uni0307	Contours detected: 10	Expected: 1
    +
    +- Glyph name: uni0308	Contours detected: 13	Expected: 2
    +
    +- Glyph name: uni030B	Contours detected: 26	Expected: 2
    +
    +- Glyph name: uni030C	Contours detected: 9	Expected: 1
    +
    +- Glyph name: uni0312	Contours detected: 7	Expected: 1
    +
    +- Glyph name: uni0326	Contours detected: 24	Expected: 1
    +
    +- Glyph name: uni0327	Contours detected: 14	Expected: 1
    +
    +- Glyph name: uni0328	Contours detected: 6	Expected: 1
    +
    +- Glyph name: uni0335	Contours detected: 13	Expected: 1
    +
    +- Glyph name: uni0337	Contours detected: 6	Expected: 1
    +
    +- Glyph name: uni0338	Contours detected: 31	Expected: 1
    +
    +- Glyph name: uni0400	Contours detected: 11	Expected: 2
    +
    +- Glyph name: uni0401	Contours detected: 22	Expected: 3
    +
    +- Glyph name: uni0402	Contours detected: 98	Expected: 1
    +
    +- Glyph name: uni0403	Contours detected: 13	Expected: 2
    +
    +- Glyph name: uni0404	Contours detected: 76	Expected: 1
    +
    +- Glyph name: uni0405	Contours detected: 53	Expected: 1
    +
    +- Glyph name: uni0406	Contours detected: 31	Expected: 1
    +
    +- Glyph name: uni0407	Contours detected: 44	Expected: 3
    +
    +- Glyph name: uni0408	Contours detected: 11	Expected: 1
    +
    +- Glyph name: uni0409	Contours detected: 72	Expected: 2
    +
    +- Glyph name: uni040A	Contours detected: 178	Expected: 2
    +
    +- Glyph name: uni040B	Contours detected: 50	Expected: 1
    +
    +- Glyph name: uni040C	Contours detected: 46	Expected: 2
    +
    +- Glyph name: uni040D	Contours detected: 19	Expected: 2
    +
    +- Glyph name: uni040E	Contours detected: 23	Expected: 2
    +
    +- Glyph name: uni040F	Contours detected: 84	Expected: 1
    +
    +- Glyph name: uni0410	Contours detected: 93	Expected: 2
    +
    +- Glyph name: uni0411	Contours detected: 40	Expected: 2
    +
    +- Glyph name: uni0412	Contours detected: 126	Expected: 3
    +
    +- Glyph name: uni0413	Contours detected: 11	Expected: 1
    +
    +- Glyph name: uni0414	Contours detected: 69	Expected: 2
    +
    +- Glyph name: uni0415	Contours detected: 9	Expected: 1
    +
    +- Glyph name: uni0416	Contours detected: 29	Expected: 1
    +
    +- Glyph name: uni0417	Contours detected: 20	Expected: 1
    +
    +- Glyph name: uni0418	Contours detected: 17	Expected: 1
    +
    +- Glyph name: uni0419	Contours detected: 24	Expected: 2
    +
    +- Glyph name: uni041A	Contours detected: 44	Expected: 1
    +
    +- Glyph name: uni041B	Contours detected: 32	Expected: 1
    +
    +- Glyph name: uni041C	Contours detected: 12	Expected: 1
    +
    +- Glyph name: uni041D	Contours detected: 32	Expected: 1
    +
    +- Glyph name: uni041E	Contours detected: 111	Expected: 2
    +
    +- Glyph name: uni041F	Contours detected: 191	Expected: 1
    +
    +- Glyph name: uni0420	Contours detected: 10	Expected: 1 or 2
    +
    +- Glyph name: uni0421	Contours detected: 13	Expected: 1
    +
    +- Glyph name: uni0422	Contours detected: 33	Expected: 1
    +
    +- Glyph name: uni0423	Contours detected: 16	Expected: 1
    +
    +- Glyph name: uni0424	Contours detected: 59	Expected: 3
    +
    +- Glyph name: uni0425	Contours detected: 28	Expected: 1
    +
    +- Glyph name: uni0426	Contours detected: 17	Expected: 1
    +
    +- Glyph name: uni0427	Contours detected: 75	Expected: 1
    +
    +- Glyph name: uni0428	Contours detected: 8	Expected: 1
    +
    +- Glyph name: uni0429	Contours detected: 28	Expected: 1
    +
    +- Glyph name: uni042A	Contours detected: 71	Expected: 2
    +
    +- Glyph name: uni042B	Contours detected: 82	Expected: 3
    +
    +- Glyph name: uni042C	Contours detected: 8	Expected: 2
    +
    +- Glyph name: uni042D	Contours detected: 17	Expected: 1
    +
    +- Glyph name: uni042E	Contours detected: 10	Expected: 2
    +
    +- Glyph name: uni042F	Contours detected: 46	Expected: 2
    +
    +- Glyph name: uni0430	Contours detected: 20	Expected: 2
    +
    +- Glyph name: uni0431	Contours detected: 15	Expected: 2
    +
    +- Glyph name: uni0432	Contours detected: 48	Expected: 3
    +
    +- Glyph name: uni0433	Contours detected: 49	Expected: 1
    +
    +- Glyph name: uni0434	Contours detected: 12	Expected: 2
    +
    +- Glyph name: uni0435	Contours detected: 21	Expected: 2
    +
    +- Glyph name: uni0436	Contours detected: 29	Expected: 1
    +
    +- Glyph name: uni0437	Contours detected: 9	Expected: 1
    +
    +- Glyph name: uni0438	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0439	Contours detected: 18	Expected: 2
    +
    +- Glyph name: uni043A	Contours detected: 13	Expected: 1
    +
    +- Glyph name: uni043B	Contours detected: 19	Expected: 1
    +
    +- Glyph name: uni043C	Contours detected: 33	Expected: 1
    +
    +- Glyph name: uni043D	Contours detected: 80	Expected: 1
    +
    +- Glyph name: uni043E	Contours detected: 95	Expected: 2
    +
    +- Glyph name: uni043F	Contours detected: 112	Expected: 1
    +
    +- Glyph name: uni0440	Contours detected: 37	Expected: 2
    +
    +- Glyph name: uni0441	Contours detected: 31	Expected: 1
    +
    +- Glyph name: uni0442	Contours detected: 66	Expected: 1
    +
    +- Glyph name: uni0443	Contours detected: 38	Expected: 1
    +
    +- Glyph name: uni0444	Contours detected: 36	Expected: 3
    +
    +- Glyph name: uni0445	Contours detected: 6	Expected: 1
    +
    +- Glyph name: uni0446	Contours detected: 25	Expected: 1
    +
    +- Glyph name: uni0447	Contours detected: 44	Expected: 1
    +
    +- Glyph name: uni0448	Contours detected: 85	Expected: 1
    +
    +- Glyph name: uni0449	Contours detected: 67	Expected: 1
    +
    +- Glyph name: uni044A	Contours detected: 61	Expected: 2
    +
    +- Glyph name: uni044B	Contours detected: 42	Expected: 3
    +
    +- Glyph name: uni044C	Contours detected: 75	Expected: 2
    +
    +- Glyph name: uni044D	Contours detected: 26	Expected: 1
    +
    +- Glyph name: uni044E	Contours detected: 14	Expected: 2
    +
    +- Glyph name: uni044F	Contours detected: 14	Expected: 2
    +
    +- Glyph name: uni0450	Contours detected: 23	Expected: 3
    +
    +- Glyph name: uni0451	Contours detected: 34	Expected: 4
    +
    +- Glyph name: uni0452	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni0453	Contours detected: 52	Expected: 2
    +
    +- Glyph name: uni0454	Contours detected: 14	Expected: 1
    +
    +- Glyph name: uni0455	Contours detected: 18	Expected: 1
    +
    +- Glyph name: uni0456	Contours detected: 31	Expected: 2
    +
    +- Glyph name: uni0457	Contours detected: 47	Expected: 3
    +
    +- Glyph name: uni0458	Contours detected: 9	Expected: 2
    +
    +- Glyph name: uni0459	Contours detected: 40	Expected: 2
    +
    +- Glyph name: uni045A	Contours detected: 29	Expected: 2
    +
    +- Glyph name: uni045B	Contours detected: 24	Expected: 1
    +
    +- Glyph name: uni045C	Contours detected: 16	Expected: 2
    +
    +- Glyph name: uni045D	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni045E	Contours detected: 54	Expected: 2
    +
    +- Glyph name: uni045F	Contours detected: 68	Expected: 1 or 2
    +
    +- Glyph name: uni0462	Contours detected: 16	Expected: 2
    +
    +- Glyph name: uni0463	Contours detected: 27	Expected: 2
    +
    +- Glyph name: uni046A	Contours detected: 90	Expected: 2
    +
    +- Glyph name: uni046B	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni0472	Contours detected: 78	Expected: 3
    +
    +- Glyph name: uni0473	Contours detected: 35	Expected: 3
    +
    +- Glyph name: uni0474	Contours detected: 22	Expected: 1
    +
    +- Glyph name: uni0475	Contours detected: 35	Expected: 1
    +
    +- Glyph name: uni0490	Contours detected: 24	Expected: 1
    +
    +- Glyph name: uni0491	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni0492	Contours detected: 20	Expected: 1
    +
    +- Glyph name: uni0493	Contours detected: 44	Expected: 1
    +
    +- Glyph name: uni0494	Contours detected: 118	Expected: 1
    +
    +- Glyph name: uni0495	Contours detected: 88	Expected: 1
    +
    +- Glyph name: uni0496	Contours detected: 38	Expected: 1 or 2
    +
    +- Glyph name: uni0497	Contours detected: 59	Expected: 1 or 2
    +
    +- Glyph name: uni0498	Contours detected: 16	Expected: 1 or 2
    +
    +- Glyph name: uni0499	Contours detected: 25	Expected: 1 or 2
    +
    +- Glyph name: uni049A	Contours detected: 13	Expected: 1 or 2
    +
    +- Glyph name: uni049B	Contours detected: 11	Expected: 1 or 2
    +
    +- Glyph name: uni049C	Contours detected: 131	Expected: 1
    +
    +- Glyph name: uni049D	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni04A0	Contours detected: 138	Expected: 1
    +
    +- Glyph name: uni04A1	Contours detected: 54	Expected: 1
    +
    +- Glyph name: uni04A2	Contours detected: 71	Expected: 1 or 2
    +
    +- Glyph name: uni04A3	Contours detected: 13	Expected: 1 or 2
    +
    +- Glyph name: uni04A4	Contours detected: 36	Expected: 1
    +
    +- Glyph name: uni04A5	Contours detected: 53	Expected: 1
    +
    +- Glyph name: uni04AA	Contours detected: 20	Expected: 1 or 2
    +
    +- Glyph name: uni04AB	Contours detected: 59	Expected: 1 or 2
    +
    +- Glyph name: Ustraitcy	Contours detected: 23	Expected: 1
    +
    +- Glyph name: ustraitcy	Contours detected: 19	Expected: 1
    +
    +- Glyph name: Ustraitstrokecy	Contours detected: 36	Expected: 1
    +
    +- Glyph name: ustraitstrokecy	Contours detected: 41	Expected: 1
    +
    +- Glyph name: uni04B6	Contours detected: 16	Expected: 1 or 2
    +
    +- Glyph name: uni04B7	Contours detected: 24	Expected: 1 or 2
    +
    +- Glyph name: uni04B8	Contours detected: 59	Expected: 1
    +
    +- Glyph name: uni04B9	Contours detected: 29	Expected: 1
    +
    +- Glyph name: uni04BA	Contours detected: 113	Expected: 1
    +
    +- Glyph name: uni04BB	Contours detected: 63	Expected: 1
    +
    +- Glyph name: uni04C0	Contours detected: 31	Expected: 1
    +
    +- Glyph name: uni04C1	Contours detected: 36	Expected: 2
    +
    +- Glyph name: uni04C2	Contours detected: 45	Expected: 2
    +
    +- Glyph name: uni04CB	Contours detected: 102	Expected: 1 or 2
    +
    +- Glyph name: uni04CF	Contours detected: 51	Expected: 1
    +
    +- Glyph name: uni04D0	Contours detected: 100	Expected: 3
    +
    +- Glyph name: uni04D1	Contours detected: 36	Expected: 3
    +
    +- Glyph name: uni04D2	Contours detected: 106	Expected: 4
    +
    +- Glyph name: uni04D3	Contours detected: 33	Expected: 4
    +
    +- Glyph name: uni04D4	Contours detected: 44	Expected: 2
    +
    +- Glyph name: uni04D5	Contours detected: 27	Expected: 3
    +
    +- Glyph name: uni04D6	Contours detected: 16	Expected: 2
    +
    +- Glyph name: uni04D7	Contours detected: 37	Expected: 3
    +
    +- Glyph name: uni04D8	Contours detected: 29	Expected: 2
    +
    +- Glyph name: uni04D9	Contours detected: 21	Expected: 2
    +
    +- Glyph name: uni04DC	Contours detected: 42	Expected: 3
    +
    +- Glyph name: uni04DD	Contours detected: 42	Expected: 3
    +
    +- Glyph name: uni04DE	Contours detected: 33	Expected: 3
    +
    +- Glyph name: uni04DF	Contours detected: 22	Expected: 3
    +
    +- Glyph name: uni04E2	Contours detected: 18	Expected: 2
    +
    +- Glyph name: uni04E3	Contours detected: 3	Expected: 2
    +
    +- Glyph name: uni04E4	Contours detected: 30	Expected: 3
    +
    +- Glyph name: uni04E5	Contours detected: 15	Expected: 3
    +
    +- Glyph name: uni04E6	Contours detected: 124	Expected: 4
    +
    +- Glyph name: uni04E7	Contours detected: 108	Expected: 4
    +
    +- Glyph name: uni04E8	Contours detected: 9	Expected: 3
    +
    +- Glyph name: uni04E9	Contours detected: 35	Expected: 3
    +
    +- Glyph name: uni04EE	Contours detected: 17	Expected: 2
    +
    +- Glyph name: uni04EF	Contours detected: 39	Expected: 2
    +
    +- Glyph name: uni04F0	Contours detected: 29	Expected: 3
    +
    +- Glyph name: uni04F1	Contours detected: 51	Expected: 3
    +
    +- Glyph name: uni04F2	Contours detected: 42	Expected: 3
    +
    +- Glyph name: uni04F3	Contours detected: 64	Expected: 3
    +
    +- Glyph name: uni04F4	Contours detected: 88	Expected: 3
    +
    +- Glyph name: uni04F5	Contours detected: 57	Expected: 3
    +
    +- Glyph name: uni04F6	Contours detected: 8	Expected: 1 or 2
    +
    +- Glyph name: uni04F7	Contours detected: 52	Expected: 1 or 2
    +
    +- Glyph name: uni04F8	Contours detected: 95	Expected: 5
    +
    +- Glyph name: uni04F9	Contours detected: 55	Expected: 5
    +
    +- Glyph name: uni051A	Contours detected: 24	Expected: 2
    +
    +- Glyph name: uni051B	Contours detected: 30	Expected: 2
    +
    +- Glyph name: uni051C	Contours detected: 50	Expected: 1
    +
    +- Glyph name: uni051D	Contours detected: 63	Expected: 1
    +
    +- Glyph name: uni0524	Contours detected: 48	Expected: 1
    +
    +- Glyph name: uni0525	Contours detected: 23	Expected: 1
    +
    +- Glyph name: Wgrave	Contours detected: 52	Expected: 2
    +
    +- Glyph name: wgrave	Contours detected: 65	Expected: 2
    +
    +- Glyph name: Wacute	Contours detected: 52	Expected: 2
    +
    +- Glyph name: wacute	Contours detected: 66	Expected: 2
    +
    +- Glyph name: Wdieresis	Contours detected: 77	Expected: 3
    +
    +- Glyph name: wdieresis	Contours detected: 76	Expected: 3
    +
    +- Glyph name: uni1E9E	Contours detected: 78	Expected: 1
    +
    +- Glyph name: Ygrave	Contours detected: 17	Expected: 2
    +
    +- Glyph name: ygrave	Contours detected: 26	Expected: 2
    +
    +- Glyph name: emdash	Contours detected: 4	Expected: 1
    +
    +- Glyph name: quoteleft	Contours detected: 12	Expected: 1
    +
    +- Glyph name: quoteright	Contours detected: 19	Expected: 1
    +
    +- Glyph name: quotesinglbase	Contours detected: 22	Expected: 1
    +
    +- Glyph name: quotedblright	Contours detected: 9	Expected: 2
    +
    +- Glyph name: quotedblbase	Contours detected: 6	Expected: 2
    +
    +- Glyph name: dagger	Contours detected: 39	Expected: 1 or 2
    +
    +- Glyph name: daggerdbl	Contours detected: 18	Expected: 1 or 3
    +
    +- Glyph name: bullet	Contours detected: 5	Expected: 1
    +
    +- Glyph name: ellipsis	Contours detected: 26	Expected: 3
    +
    +- Glyph name: perthousand	Contours detected: 14	Expected: 6 or 7
    +
    +- Glyph name: guilsinglleft	Contours detected: 11	Expected: 1
    +
    +- Glyph name: guilsinglright	Contours detected: 3	Expected: 1
    +
    +- Glyph name: fraction	Contours detected: 26	Expected: 1
    +
    +- Glyph name: uni2070	Contours detected: 5	Expected: 2 or 3
    +
    +- Glyph name: uni2074	Contours detected: 19	Expected: 1 or 2
    +
    +- Glyph name: uni2075	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni2077	Contours detected: 22	Expected: 1
    +
    +- Glyph name: uni2078	Contours detected: 22	Expected: 3
    +
    +- Glyph name: uni2079	Contours detected: 8	Expected: 2
    +
    +- Glyph name: uni207D	Contours detected: 7	Expected: 1
    +
    +- Glyph name: uni207E	Contours detected: 19	Expected: 1
    +
    +- Glyph name: uni2080	Contours detected: 5	Expected: 2 or 3
    +
    +- Glyph name: uni2081	Contours detected: 14	Expected: 1
    +
    +- Glyph name: uni2082	Contours detected: 8	Expected: 1
    +
    +- Glyph name: uni2084	Contours detected: 19	Expected: 1 or 2
    +
    +- Glyph name: uni2085	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni2087	Contours detected: 22	Expected: 1
    +
    +- Glyph name: uni2088	Contours detected: 22	Expected: 3
    +
    +- Glyph name: uni2089	Contours detected: 8	Expected: 2
    +
    +- Glyph name: uni208D	Contours detected: 7	Expected: 1
    +
    +- Glyph name: uni208E	Contours detected: 19	Expected: 1
    +
    +- Glyph name: uni20AA	Contours detected: 25	Expected: 2
    +
    +- Glyph name: Euro	Contours detected: 79	Expected: 1 or 2
    +
    +- Glyph name: uni20AE	Contours detected: 13	Expected: 1
    +
    +- Glyph name: uni20B4	Contours detected: 62	Expected: 1 or 2
    +
    +- Glyph name: uni20B8	Contours detected: 10	Expected: 2
    +
    +- Glyph name: uni20B9	Contours detected: 16	Expected: 1
    +
    +- Glyph name: uni20BD	Contours detected: 101	Expected: 2
    +
    +- Glyph name: uni2116	Contours detected: 115	Expected: 3 or 4
    +
    +- Glyph name: trademark	Contours detected: 33	Expected: 2
    +
    +- Glyph name: estimated	Contours detected: 42	Expected: 2
    +
    +- Glyph name: uni2153	Contours detected: 41	Expected: 3
    +
    +- Glyph name: uni2154	Contours detected: 35	Expected: 1 or 3
    +
    +- Glyph name: oneeighth	Contours detected: 62	Expected: 5
    +
    +- Glyph name: threeeighths	Contours detected: 49	Expected: 5
    +
    +- Glyph name: fiveeighths	Contours detected: 53	Expected: 5
    +
    +- Glyph name: seveneighths	Contours detected: 70	Expected: 5
    +
    +- Glyph name: partialdiff	Contours detected: 37	Expected: 2
    +
    +- Glyph name: uni2206	Contours detected: 61	Expected: 2
    +
    +- Glyph name: product	Contours detected: 37	Expected: 1
    +
    +- Glyph name: summation	Contours detected: 28	Expected: 1
    +
    +- Glyph name: uni2215	Contours detected: 38	Expected: 1
    +
    +- Glyph name: radical	Contours detected: 9	Expected: 1
    +
    +- Glyph name: infinity	Contours detected: 46	Expected: 3
    +
    +- Glyph name: integral	Contours detected: 17	Expected: 1
    +
    +- Glyph name: approxequal	Contours detected: 18	Expected: 2
    +
    +- Glyph name: notequal	Contours detected: 10	Expected: 1
    +
    +- Glyph name: lessequal	Contours detected: 3	Expected: 2
    +
    +- Glyph name: greaterequal	Contours detected: 7	Expected: 2
    +
    +- Glyph name: lozenge	Contours detected: 91	Expected: 2
    +
    +- Glyph name: fi	Contours detected: 30	Expected: 1, 2 or 3
    +
    +- Glyph name: fl	Contours detected: 47	Expected: 1 or 2
    +
    +- Glyph name: A	Contours detected: 93	Expected: 2
    +
    +- Glyph name: AE	Contours detected: 44	Expected: 2
    +
    +- Glyph name: AEacute	Contours detected: 46	Expected: 3
    +
    +- Glyph name: Aacute	Contours detected: 95	Expected: 3
    +
    +- Glyph name: Abreve	Contours detected: 113	Expected: 3
    +
    +- Glyph name: Acircumflex	Contours detected: 95	Expected: 3
    +
    +- Glyph name: Adieresis	Contours detected: 120	Expected: 4
    +
    +- Glyph name: Agrave	Contours detected: 95	Expected: 3
    +
    +- Glyph name: Amacron	Contours detected: 96	Expected: 3
    +
    +- Glyph name: Aogonek	Contours detected: 22	Expected: 2 or 3
    +
    +- Glyph name: Aring	Contours detected: 98	Expected: 3 or 4
    +
    +- Glyph name: Atilde	Contours detected: 98	Expected: 3
    +
    +- Glyph name: B	Contours detected: 126	Expected: 2 or 3
    +
    +- Glyph name: C	Contours detected: 13	Expected: 1
    +
    +- Glyph name: Cacute	Contours detected: 15	Expected: 2
    +
    +- Glyph name: Ccaron	Contours detected: 26	Expected: 2
    +
    +- Glyph name: Ccedilla	Contours detected: 14	Expected: 1 or 2
    +
    +- Glyph name: Ccircumflex	Contours detected: 15	Expected: 2
    +
    +- Glyph name: Cdotaccent	Contours detected: 27	Expected: 2
    +
    +- Glyph name: D	Contours detected: 18	Expected: 2
    +
    +- Glyph name: Dcaron	Contours detected: 31	Expected: 3
    +
    +- Glyph name: Dcroat	Contours detected: 60	Expected: 2
    +
    +- Glyph name: E	Contours detected: 9	Expected: 1
    +
    +- Glyph name: Eacute	Contours detected: 11	Expected: 2
    +
    +- Glyph name: Ebreve	Contours detected: 29	Expected: 2
    +
    +- Glyph name: Ecaron	Contours detected: 22	Expected: 2
    +
    +- Glyph name: Ecircumflex	Contours detected: 11	Expected: 2
    +
    +- Glyph name: Edieresis	Contours detected: 36	Expected: 3
    +
    +- Glyph name: Edotaccent	Contours detected: 23	Expected: 2
    +
    +- Glyph name: Egrave	Contours detected: 11	Expected: 2
    +
    +- Glyph name: Emacron	Contours detected: 12	Expected: 2
    +
    +- Glyph name: Eng	Contours detected: 20	Expected: 1
    +
    +- Glyph name: Eth	Contours detected: 29	Expected: 2
    +
    +- Glyph name: Euro	Contours detected: 79	Expected: 1 or 2
    +
    +- Glyph name: F	Contours detected: 13	Expected: 1
    +
    +- Glyph name: G	Contours detected: 24	Expected: 1
    +
    +- Glyph name: Gbreve	Contours detected: 44	Expected: 2
    +
    +- Glyph name: Gcircumflex	Contours detected: 26	Expected: 2
    +
    +- Glyph name: Gdotaccent	Contours detected: 38	Expected: 2
    +
    +- Glyph name: H	Contours detected: 32	Expected: 1
    +
    +- Glyph name: Hbar	Contours detected: 14	Expected: 2
    +
    +- Glyph name: Hcircumflex	Contours detected: 34	Expected: 2
    +
    +- Glyph name: I	Contours detected: 31	Expected: 1
    +
    +- Glyph name: IJ	Contours detected: 111	Expected: 1 or 2
    +
    +- Glyph name: Iacute	Contours detected: 33	Expected: 2
    +
    +- Glyph name: Ibreve	Contours detected: 51	Expected: 2
    +
    +- Glyph name: Icircumflex	Contours detected: 33	Expected: 2
    +
    +- Glyph name: Idieresis	Contours detected: 58	Expected: 3
    +
    +- Glyph name: Idotaccent	Contours detected: 45	Expected: 2
    +
    +- Glyph name: Igrave	Contours detected: 33	Expected: 2
    +
    +- Glyph name: Imacron	Contours detected: 34	Expected: 2
    +
    +- Glyph name: Iogonek	Contours detected: 80	Expected: 1 or 2
    +
    +- Glyph name: Itilde	Contours detected: 36	Expected: 2
    +
    +- Glyph name: J	Contours detected: 11	Expected: 1
    +
    +- Glyph name: Jcircumflex	Contours detected: 13	Expected: 2
    +
    +- Glyph name: K	Contours detected: 31	Expected: 1 or 2
    +
    +- Glyph name: L	Contours detected: 3	Expected: 1
    +
    +- Glyph name: Lacute	Contours detected: 5	Expected: 2
    +
    +- Glyph name: Lcaron	Contours detected: 7	Expected: 2
    +
    +- Glyph name: Ldot	Contours detected: 9	Expected: 2
    +
    +- Glyph name: Lslash	Contours detected: 77	Expected: 1
    +
    +- Glyph name: M	Contours detected: 12	Expected: 1
    +
    +- Glyph name: N	Contours detected: 11	Expected: 1
    +
    +- Glyph name: Nacute	Contours detected: 13	Expected: 2
    +
    +- Glyph name: Ncaron	Contours detected: 24	Expected: 2
    +
    +- Glyph name: Ntilde	Contours detected: 16	Expected: 2
    +
    +- Glyph name: O	Contours detected: 111	Expected: 2
    +
    +- Glyph name: OE	Contours detected: 120	Expected: 2
    +
    +- Glyph name: Oacute	Contours detected: 113	Expected: 3
    +
    +- Glyph name: Ocircumflex	Contours detected: 113	Expected: 3
    +
    +- Glyph name: Odieresis	Contours detected: 138	Expected: 4
    +
    +- Glyph name: Ograve	Contours detected: 113	Expected: 3
    +
    +- Glyph name: Ohungarumlaut	Contours detected: 114	Expected: 4
    +
    +- Glyph name: Omacron	Contours detected: 114	Expected: 3
    +
    +- Glyph name: Oslash	Contours detected: 28	Expected: 2 or 3
    +
    +- Glyph name: Oslashacute	Contours detected: 30	Expected: 4
    +
    +- Glyph name: Otilde	Contours detected: 116	Expected: 3
    +
    +- Glyph name: P	Contours detected: 10	Expected: 1 or 2
    +
    +- Glyph name: Q	Contours detected: 24	Expected: 2
    +
    +- Glyph name: R	Contours detected: 80	Expected: 1 or 2
    +
    +- Glyph name: Racute	Contours detected: 82	Expected: 3
    +
    +- Glyph name: Rcaron	Contours detected: 93	Expected: 3
    +
    +- Glyph name: S	Contours detected: 53	Expected: 1
    +
    +- Glyph name: Sacute	Contours detected: 55	Expected: 2
    +
    +- Glyph name: Scaron	Contours detected: 66	Expected: 2
    +
    +- Glyph name: Scircumflex	Contours detected: 55	Expected: 2
    +
    +- Glyph name: T	Contours detected: 33	Expected: 1
    +
    +- Glyph name: Tbar	Contours detected: 18	Expected: 1
    +
    +- Glyph name: Tcaron	Contours detected: 46	Expected: 2
    +
    +- Glyph name: Thorn	Contours detected: 124	Expected: 1 or 2
    +
    +- Glyph name: U	Contours detected: 41	Expected: 1
    +
    +- Glyph name: Uacute	Contours detected: 43	Expected: 2
    +
    +- Glyph name: Ubreve	Contours detected: 61	Expected: 2
    +
    +- Glyph name: Ucircumflex	Contours detected: 43	Expected: 2
    +
    +- Glyph name: Udieresis	Contours detected: 68	Expected: 3
    +
    +- Glyph name: Ugrave	Contours detected: 43	Expected: 2
    +
    +- Glyph name: Uhungarumlaut	Contours detected: 44	Expected: 3
    +
    +- Glyph name: Umacron	Contours detected: 44	Expected: 2
    +
    +- Glyph name: Uogonek	Contours detected: 21	Expected: 1
    +
    +- Glyph name: Uring	Contours detected: 46	Expected: 3
    +
    +- Glyph name: Utilde	Contours detected: 46	Expected: 2
    +
    +- Glyph name: V	Contours detected: 68	Expected: 1
    +
    +- Glyph name: W	Contours detected: 50	Expected: 1 or 2
    +
    +- Glyph name: Wacute	Contours detected: 52	Expected: 2
    +
    +- Glyph name: Wcircumflex	Contours detected: 52	Expected: 2
    +
    +- Glyph name: Wdieresis	Contours detected: 77	Expected: 3
    +
    +- Glyph name: Wgrave	Contours detected: 52	Expected: 2
    +
    +- Glyph name: X	Contours detected: 28	Expected: 1
    +
    +- Glyph name: Y	Contours detected: 15	Expected: 1
    +
    +- Glyph name: Yacute	Contours detected: 17	Expected: 2
    +
    +- Glyph name: Ycircumflex	Contours detected: 17	Expected: 2
    +
    +- Glyph name: Ydieresis	Contours detected: 42	Expected: 3
    +
    +- Glyph name: Ygrave	Contours detected: 17	Expected: 2
    +
    +- Glyph name: Z	Contours detected: 7	Expected: 1
    +
    +- Glyph name: Zacute	Contours detected: 9	Expected: 2
    +
    +- Glyph name: Zcaron	Contours detected: 20	Expected: 2
    +
    +- Glyph name: Zdotaccent	Contours detected: 21	Expected: 2
    +
    +- Glyph name: a	Contours detected: 20	Expected: 2
    +
    +- Glyph name: aacute	Contours detected: 23	Expected: 3
    +
    +- Glyph name: abreve	Contours detected: 47	Expected: 3
    +
    +- Glyph name: acircumflex	Contours detected: 32	Expected: 3
    +
    +- Glyph name: acute	Contours detected: 3	Expected: 1
    +
    +- Glyph name: adieresis	Contours detected: 33	Expected: 4
    +
    +- Glyph name: ae	Contours detected: 27	Expected: 3
    +
    +- Glyph name: aeacute	Contours detected: 30	Expected: 4
    +
    +- Glyph name: agrave	Contours detected: 22	Expected: 3
    +
    +- Glyph name: amacron	Contours detected: 21	Expected: 3
    +
    +- Glyph name: ampersand	Contours detected: 19	Expected: 1, 2 or 3
    +
    +- Glyph name: aogonek	Contours detected: 42	Expected: 2
    +
    +- Glyph name: approxequal	Contours detected: 18	Expected: 2
    +
    +- Glyph name: aring	Contours detected: 22	Expected: 4
    +
    +- Glyph name: asciicircum	Contours detected: 6	Expected: 1
    +
    +- Glyph name: asciitilde	Contours detected: 6	Expected: 1
    +
    +- Glyph name: asterisk	Contours detected: 11	Expected: 1 or 4
    +
    +- Glyph name: at	Contours detected: 48	Expected: 2
    +
    +- Glyph name: atilde	Contours detected: 23	Expected: 3
    +
    +- Glyph name: b	Contours detected: 78	Expected: 2
    +
    +- Glyph name: backslash	Contours detected: 8	Expected: 1
    +
    +- Glyph name: bar	Contours detected: 3	Expected: 1
    +
    +- Glyph name: braceleft	Contours detected: 72	Expected: 1
    +
    +- Glyph name: braceright	Contours detected: 21	Expected: 1
    +
    +- Glyph name: bracketleft	Contours detected: 3	Expected: 1
    +
    +- Glyph name: bracketright	Contours detected: 29	Expected: 1
    +
    +- Glyph name: breve	Contours detected: 27	Expected: 1
    +
    +- Glyph name: brokenbar	Contours detected: 28	Expected: 2
    +
    +- Glyph name: bullet	Contours detected: 5	Expected: 1
    +
    +- Glyph name: c	Contours detected: 31	Expected: 1
    +
    +- Glyph name: cacute	Contours detected: 34	Expected: 2
    +
    +- Glyph name: caron	Contours detected: 9	Expected: 1
    +
    +- Glyph name: ccaron	Contours detected: 40	Expected: 2
    +
    +- Glyph name: ccedilla	Contours detected: 9	Expected: 1 or 2
    +
    +- Glyph name: ccircumflex	Contours detected: 43	Expected: 2
    +
    +- Glyph name: cdotaccent	Contours detected: 41	Expected: 2
    +
    +- Glyph name: cedilla	Contours detected: 14	Expected: 1
    +
    +- Glyph name: cent	Contours detected: 11	Expected: 1 or 2
    +
    +- Glyph name: circumflex	Contours detected: 12	Expected: 1
    +
    +- Glyph name: colon	Contours detected: 14	Expected: 2
    +
    +- Glyph name: comma	Contours detected: 5	Expected: 1
    +
    +- Glyph name: currency	Contours detected: 23	Expected: 2
    +
    +- Glyph name: d	Contours detected: 48	Expected: 2
    +
    +- Glyph name: dagger	Contours detected: 39	Expected: 1 or 2
    +
    +- Glyph name: daggerdbl	Contours detected: 18	Expected: 1 or 3
    +
    +- Glyph name: dcaron	Contours detected: 52	Expected: 3
    +
    +- Glyph name: dcroat	Contours detected: 61	Expected: 2
    +
    +- Glyph name: degree	Contours detected: 10	Expected: 2
    +
    +- Glyph name: dieresis	Contours detected: 13	Expected: 2
    +
    +- Glyph name: divide	Contours detected: 35	Expected: 3
    +
    +- Glyph name: dollar	Contours detected: 17	Expected: 1, 3 or 5
    +
    +- Glyph name: dotaccent	Contours detected: 10	Expected: 1
    +
    +- Glyph name: dotlessi	Contours detected: 34	Expected: 1
    +
    +- Glyph name: e	Contours detected: 21	Expected: 2
    +
    +- Glyph name: eacute	Contours detected: 24	Expected: 3
    +
    +- Glyph name: ebreve	Contours detected: 48	Expected: 3
    +
    +- Glyph name: ecaron	Contours detected: 30	Expected: 3
    +
    +- Glyph name: ecircumflex	Contours detected: 33	Expected: 3
    +
    +- Glyph name: edieresis	Contours detected: 34	Expected: 4
    +
    +- Glyph name: edotaccent	Contours detected: 31	Expected: 3
    +
    +- Glyph name: egrave	Contours detected: 23	Expected: 3
    +
    +- Glyph name: eight	Contours detected: 21	Expected: 3
    +
    +- Glyph name: ellipsis	Contours detected: 26	Expected: 3
    +
    +- Glyph name: emacron	Contours detected: 22	Expected: 3
    +
    +- Glyph name: emdash	Contours detected: 4	Expected: 1
    +
    +- Glyph name: eng	Contours detected: 125	Expected: 1
    +
    +- Glyph name: eogonek	Contours detected: 63	Expected: 2
    +
    +- Glyph name: equal	Contours detected: 8	Expected: 2
    +
    +- Glyph name: estimated	Contours detected: 42	Expected: 2
    +
    +- Glyph name: eth	Contours detected: 67	Expected: 2
    +
    +- Glyph name: exclam	Contours detected: 50	Expected: 2
    +
    +- Glyph name: exclamdown	Contours detected: 6	Expected: 2
    +
    +- Glyph name: f	Contours detected: 20	Expected: 1
    +
    +- Glyph name: fi	Contours detected: 30	Expected: 3
    +
    +- Glyph name: five	Contours detected: 30	Expected: 1
    +
    +- Glyph name: fiveeighths	Contours detected: 53	Expected: 5
    +
    +- Glyph name: fl	Contours detected: 47	Expected: 2
    +
    +- Glyph name: four	Contours detected: 32	Expected: 1 or 2
    +
    +- Glyph name: fraction	Contours detected: 26	Expected: 1
    +
    +- Glyph name: g	Contours detected: 49	Expected: 2 or 3
    +
    +- Glyph name: gbreve	Contours detected: 76	Expected: 3 or 4
    +
    +- Glyph name: gcircumflex	Contours detected: 61	Expected: 3 or 4
    +
    +- Glyph name: gdotaccent	Contours detected: 59	Expected: 3 or 4
    +
    +- Glyph name: germandbls	Contours detected: 37	Expected: 1
    +
    +- Glyph name: grave	Contours detected: 2	Expected: 1
    +
    +- Glyph name: greater	Contours detected: 78	Expected: 1
    +
    +- Glyph name: greaterequal	Contours detected: 7	Expected: 2
    +
    +- Glyph name: guillemotleft	Contours detected: 25	Expected: 2
    +
    +- Glyph name: guillemotright	Contours detected: 52	Expected: 2
    +
    +- Glyph name: guilsinglleft	Contours detected: 11	Expected: 1
    +
    +- Glyph name: guilsinglright	Contours detected: 3	Expected: 1
    +
    +- Glyph name: h	Contours detected: 63	Expected: 1
    +
    +- Glyph name: hbar	Contours detected: 42	Expected: 1
    +
    +- Glyph name: hcircumflex	Contours detected: 75	Expected: 2
    +
    +- Glyph name: hungarumlaut	Contours detected: 26	Expected: 2
    +
    +- Glyph name: hyphen	Contours detected: 4	Expected: 1
    +
    +- Glyph name: i	Contours detected: 31	Expected: 2
    +
    +- Glyph name: iacute	Contours detected: 37	Expected: 2
    +
    +- Glyph name: ibreve	Contours detected: 61	Expected: 2
    +
    +- Glyph name: icircumflex	Contours detected: 46	Expected: 2
    +
    +- Glyph name: idieresis	Contours detected: 47	Expected: 3
    +
    +- Glyph name: igrave	Contours detected: 36	Expected: 2
    +
    +- Glyph name: ij	Contours detected: 40	Expected: 3 or 4
    +
    +- Glyph name: imacron	Contours detected: 35	Expected: 2
    +
    +- Glyph name: infinity	Contours detected: 46	Expected: 3
    +
    +- Glyph name: integral	Contours detected: 17	Expected: 1
    +
    +- Glyph name: iogonek	Contours detected: 60	Expected: 2 or 3
    +
    +- Glyph name: itilde	Contours detected: 37	Expected: 2
    +
    +- Glyph name: j	Contours detected: 9	Expected: 2
    +
    +- Glyph name: jcircumflex	Contours detected: 48	Expected: 2
    +
    +- Glyph name: k	Contours detected: 115	Expected: 1 or 2
    +
    +- Glyph name: kgreenlandic	Contours detected: 14	Expected: 1 or 2
    +
    +- Glyph name: l	Contours detected: 51	Expected: 1
    +
    +- Glyph name: lacute	Contours detected: 54	Expected: 2
    +
    +- Glyph name: lcaron	Contours detected: 55	Expected: 2
    +
    +- Glyph name: ldot	Contours detected: 64	Expected: 2
    +
    +- Glyph name: less	Contours detected: 37	Expected: 1
    +
    +- Glyph name: lessequal	Contours detected: 3	Expected: 2
    +
    +- Glyph name: logicalnot	Contours detected: 6	Expected: 1
    +
    +- Glyph name: longs	Contours detected: 20	Expected: 1
    +
    +- Glyph name: lozenge	Contours detected: 91	Expected: 2
    +
    +- Glyph name: lslash	Contours detected: 7	Expected: 1
    +
    +- Glyph name: m	Contours detected: 24	Expected: 1
    +
    +- Glyph name: multiply	Contours detected: 45	Expected: 1
    +
    +- Glyph name: n	Contours detected: 30	Expected: 1
    +
    +- Glyph name: nacute	Contours detected: 33	Expected: 2
    +
    +- Glyph name: napostrophe	Contours detected: 42	Expected: 2
    +
    +- Glyph name: ncaron	Contours detected: 39	Expected: 2
    +
    +- Glyph name: nine	Contours detected: 19	Expected: 1 or 2
    +
    +- Glyph name: notequal	Contours detected: 10	Expected: 1
    +
    +- Glyph name: ntilde	Contours detected: 33	Expected: 2
    +
    +- Glyph name: numbersign	Contours detected: 24	Expected: 2
    +
    +- Glyph name: o	Contours detected: 95	Expected: 2
    +
    +- Glyph name: oacute	Contours detected: 98	Expected: 3
    +
    +- Glyph name: ocircumflex	Contours detected: 107	Expected: 3
    +
    +- Glyph name: odieresis	Contours detected: 108	Expected: 4
    +
    +- Glyph name: oe	Contours detected: 25	Expected: 3
    +
    +- Glyph name: ogonek	Contours detected: 6	Expected: 1
    +
    +- Glyph name: ograve	Contours detected: 97	Expected: 3
    +
    +- Glyph name: ohungarumlaut	Contours detected: 121	Expected: 4
    +
    +- Glyph name: omacron	Contours detected: 96	Expected: 3
    +
    +- Glyph name: one	Contours detected: 6	Expected: 1
    +
    +- Glyph name: oneeighth	Contours detected: 62	Expected: 5
    +
    +- Glyph name: onehalf	Contours detected: 48	Expected: 3
    +
    +- Glyph name: onequarter	Contours detected: 59	Expected: 3 or 4
    +
    +- Glyph name: ordfeminine	Contours detected: 13	Expected: 2 or 3
    +
    +- Glyph name: ordmasculine	Contours detected: 17	Expected: 2 or 3
    +
    +- Glyph name: oslash	Contours detected: 46	Expected: 3
    +
    +- Glyph name: oslashacute	Contours detected: 49	Expected: 4
    +
    +- Glyph name: otilde	Contours detected: 98	Expected: 3
    +
    +- Glyph name: p	Contours detected: 37	Expected: 2
    +
    +- Glyph name: paragraph	Contours detected: 14	Expected: 1, 2 or 3
    +
    +- Glyph name: parenleft	Contours detected: 25	Expected: 1
    +
    +- Glyph name: parenright	Contours detected: 24	Expected: 1
    +
    +- Glyph name: partialdiff	Contours detected: 37	Expected: 2
    +
    +- Glyph name: percent	Contours detected: 50	Expected: 5
    +
    +- Glyph name: period	Contours detected: 18	Expected: 1
    +
    +- Glyph name: periodcentered	Contours detected: 7	Expected: 1
    +
    +- Glyph name: perthousand	Contours detected: 14	Expected: 6 or 7
    +
    +- Glyph name: plus	Contours detected: 29	Expected: 1
    +
    +- Glyph name: plusminus	Contours detected: 7	Expected: 1 or 2
    +
    +- Glyph name: product	Contours detected: 37	Expected: 1
    +
    +- Glyph name: q	Contours detected: 30	Expected: 2
    +
    +- Glyph name: question	Contours detected: 30	Expected: 2
    +
    +- Glyph name: questiondown	Contours detected: 9	Expected: 2
    +
    +- Glyph name: quotedbl	Contours detected: 8	Expected: 2
    +
    +- Glyph name: quotedblbase	Contours detected: 6	Expected: 2
    +
    +- Glyph name: quotedblright	Contours detected: 9	Expected: 2
    +
    +- Glyph name: quoteleft	Contours detected: 12	Expected: 1
    +
    +- Glyph name: quoteright	Contours detected: 19	Expected: 1
    +
    +- Glyph name: quotesinglbase	Contours detected: 22	Expected: 1
    +
    +- Glyph name: quotesingle	Contours detected: 20	Expected: 1
    +
    +- Glyph name: r	Contours detected: 66	Expected: 1
    +
    +- Glyph name: racute	Contours detected: 69	Expected: 2
    +
    +- Glyph name: radical	Contours detected: 9	Expected: 1
    +
    +- Glyph name: rcaron	Contours detected: 75	Expected: 2
    +
    +- Glyph name: registered	Contours detected: 30	Expected: 3 or 4
    +
    +- Glyph name: s	Contours detected: 18	Expected: 1
    +
    +- Glyph name: sacute	Contours detected: 21	Expected: 2
    +
    +- Glyph name: scaron	Contours detected: 27	Expected: 2
    +
    +- Glyph name: scircumflex	Contours detected: 30	Expected: 2
    +
    +- Glyph name: section	Contours detected: 12	Expected: 2
    +
    +- Glyph name: semicolon	Contours detected: 31	Expected: 2
    +
    +- Glyph name: seven	Contours detected: 36	Expected: 1
    +
    +- Glyph name: seveneighths	Contours detected: 70	Expected: 5
    +
    +- Glyph name: six	Contours detected: 59	Expected: 1 or 2
    +
    +- Glyph name: slash	Contours detected: 38	Expected: 1
    +
    +- Glyph name: sterling	Contours detected: 20	Expected: 1 or 2
    +
    +- Glyph name: summation	Contours detected: 28	Expected: 1
    +
    +- Glyph name: t	Contours detected: 12	Expected: 1
    +
    +- Glyph name: tbar	Contours detected: 11	Expected: 1
    +
    +- Glyph name: tcaron	Contours detected: 16	Expected: 2
    +
    +- Glyph name: thorn	Contours detected: 101	Expected: 2
    +
    +- Glyph name: three	Contours detected: 20	Expected: 1
    +
    +- Glyph name: threeeighths	Contours detected: 49	Expected: 5
    +
    +- Glyph name: threequarters	Contours detected: 46	Expected: 3 or 4
    +
    +- Glyph name: tilde	Contours detected: 3	Expected: 1
    +
    +- Glyph name: trademark	Contours detected: 33	Expected: 2
    +
    +- Glyph name: two	Contours detected: 18	Expected: 1
    +
    +- Glyph name: u	Contours detected: 46	Expected: 1
    +
    +- Glyph name: uacute	Contours detected: 49	Expected: 2
    +
    +- Glyph name: ubreve	Contours detected: 73	Expected: 2
    +
    +- Glyph name: ucircumflex	Contours detected: 58	Expected: 2
    +
    +- Glyph name: udieresis	Contours detected: 59	Expected: 3
    +
    +- Glyph name: ugrave	Contours detected: 48	Expected: 2
    +
    +- Glyph name: uhungarumlaut	Contours detected: 72	Expected: 3
    +
    +- Glyph name: umacron	Contours detected: 47	Expected: 2
    +
    +- Glyph name: underscore	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni00B5	Contours detected: 81	Expected: 1
    +
    +- Glyph name: uni0122	Contours detected: 27	Expected: 2
    +
    +- Glyph name: uni0123	Contours detected: 56	Expected: 3 or 4
    +
    +- Glyph name: uni0136	Contours detected: 34	Expected: 2 or 3
    +
    +- Glyph name: uni0137	Contours detected: 139	Expected: 2 or 3
    +
    +- Glyph name: uni013B	Contours detected: 6	Expected: 2
    +
    +- Glyph name: uni013C	Contours detected: 75	Expected: 2
    +
    +- Glyph name: uni0145	Contours detected: 14	Expected: 2
    +
    +- Glyph name: uni0146	Contours detected: 54	Expected: 2
    +
    +- Glyph name: uni0156	Contours detected: 83	Expected: 3
    +
    +- Glyph name: uni0157	Contours detected: 90	Expected: 2
    +
    +- Glyph name: uni0218	Contours detected: 56	Expected: 2
    +
    +- Glyph name: uni0219	Contours detected: 42	Expected: 2
    +
    +- Glyph name: uni021A	Contours detected: 36	Expected: 2
    +
    +- Glyph name: uni021B	Contours detected: 36	Expected: 2
    +
    +- Glyph name: uni0237	Contours detected: 36	Expected: 1
    +
    +- Glyph name: uni02BC	Contours detected: 24	Expected: 1
    +
    +- Glyph name: uni0302	Contours detected: 12	Expected: 1
    +
    +- Glyph name: uni0306	Contours detected: 27	Expected: 1
    +
    +- Glyph name: uni0307	Contours detected: 10	Expected: 1
    +
    +- Glyph name: uni0308	Contours detected: 13	Expected: 2
    +
    +- Glyph name: uni030B	Contours detected: 26	Expected: 2
    +
    +- Glyph name: uni030C	Contours detected: 9	Expected: 1
    +
    +- Glyph name: uni0312	Contours detected: 7	Expected: 1
    +
    +- Glyph name: uni0326	Contours detected: 24	Expected: 1
    +
    +- Glyph name: uni0327	Contours detected: 14	Expected: 1
    +
    +- Glyph name: uni0328	Contours detected: 6	Expected: 1
    +
    +- Glyph name: uni0335	Contours detected: 13	Expected: 1
    +
    +- Glyph name: uni0337	Contours detected: 6	Expected: 1
    +
    +- Glyph name: uni0338	Contours detected: 31	Expected: 1
    +
    +- Glyph name: uni0400	Contours detected: 11	Expected: 2
    +
    +- Glyph name: uni0401	Contours detected: 22	Expected: 3
    +
    +- Glyph name: uni0402	Contours detected: 98	Expected: 1
    +
    +- Glyph name: uni0403	Contours detected: 13	Expected: 2
    +
    +- Glyph name: uni0404	Contours detected: 76	Expected: 1
    +
    +- Glyph name: uni0405	Contours detected: 53	Expected: 1
    +
    +- Glyph name: uni0406	Contours detected: 31	Expected: 1
    +
    +- Glyph name: uni0407	Contours detected: 44	Expected: 3
    +
    +- Glyph name: uni0408	Contours detected: 11	Expected: 1
    +
    +- Glyph name: uni0409	Contours detected: 72	Expected: 2
    +
    +- Glyph name: uni040A	Contours detected: 178	Expected: 2
    +
    +- Glyph name: uni040B	Contours detected: 50	Expected: 1
    +
    +- Glyph name: uni040C	Contours detected: 46	Expected: 2
    +
    +- Glyph name: uni040D	Contours detected: 19	Expected: 2
    +
    +- Glyph name: uni040E	Contours detected: 23	Expected: 2
    +
    +- Glyph name: uni040F	Contours detected: 84	Expected: 1
    +
    +- Glyph name: uni0410	Contours detected: 93	Expected: 2
    +
    +- Glyph name: uni0411	Contours detected: 40	Expected: 2
    +
    +- Glyph name: uni0412	Contours detected: 126	Expected: 3
    +
    +- Glyph name: uni0413	Contours detected: 11	Expected: 1
    +
    +- Glyph name: uni0414	Contours detected: 69	Expected: 2
    +
    +- Glyph name: uni0415	Contours detected: 9	Expected: 1
    +
    +- Glyph name: uni0416	Contours detected: 29	Expected: 1
    +
    +- Glyph name: uni0417	Contours detected: 20	Expected: 1
    +
    +- Glyph name: uni0418	Contours detected: 17	Expected: 1
    +
    +- Glyph name: uni0419	Contours detected: 24	Expected: 2
    +
    +- Glyph name: uni041A	Contours detected: 44	Expected: 1
    +
    +- Glyph name: uni041B	Contours detected: 32	Expected: 1
    +
    +- Glyph name: uni041C	Contours detected: 12	Expected: 1
    +
    +- Glyph name: uni041D	Contours detected: 32	Expected: 1
    +
    +- Glyph name: uni041E	Contours detected: 111	Expected: 2
    +
    +- Glyph name: uni041F	Contours detected: 191	Expected: 1
    +
    +- Glyph name: uni0420	Contours detected: 10	Expected: 1 or 2
    +
    +- Glyph name: uni0421	Contours detected: 13	Expected: 1
    +
    +- Glyph name: uni0422	Contours detected: 33	Expected: 1
    +
    +- Glyph name: uni0423	Contours detected: 16	Expected: 1
    +
    +- Glyph name: uni0424	Contours detected: 59	Expected: 3
    +
    +- Glyph name: uni0425	Contours detected: 28	Expected: 1
    +
    +- Glyph name: uni0426	Contours detected: 17	Expected: 1
    +
    +- Glyph name: uni0427	Contours detected: 75	Expected: 1
    +
    +- Glyph name: uni0428	Contours detected: 8	Expected: 1
    +
    +- Glyph name: uni0429	Contours detected: 28	Expected: 1
    +
    +- Glyph name: uni042A	Contours detected: 71	Expected: 2
    +
    +- Glyph name: uni042B	Contours detected: 82	Expected: 3
    +
    +- Glyph name: uni042C	Contours detected: 8	Expected: 2
    +
    +- Glyph name: uni042D	Contours detected: 17	Expected: 1
    +
    +- Glyph name: uni042E	Contours detected: 10	Expected: 2
    +
    +- Glyph name: uni042F	Contours detected: 46	Expected: 2
    +
    +- Glyph name: uni0430	Contours detected: 20	Expected: 2
    +
    +- Glyph name: uni0431	Contours detected: 15	Expected: 2
    +
    +- Glyph name: uni0432	Contours detected: 48	Expected: 3
    +
    +- Glyph name: uni0433	Contours detected: 49	Expected: 1
    +
    +- Glyph name: uni0434	Contours detected: 12	Expected: 2
    +
    +- Glyph name: uni0435	Contours detected: 21	Expected: 2
    +
    +- Glyph name: uni0436	Contours detected: 29	Expected: 1
    +
    +- Glyph name: uni0437	Contours detected: 9	Expected: 1
    +
    +- Glyph name: uni0438	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0439	Contours detected: 18	Expected: 2
    +
    +- Glyph name: uni043A	Contours detected: 13	Expected: 1
    +
    +- Glyph name: uni043B	Contours detected: 19	Expected: 1
    +
    +- Glyph name: uni043C	Contours detected: 33	Expected: 1
    +
    +- Glyph name: uni043D	Contours detected: 80	Expected: 1
    +
    +- Glyph name: uni043E	Contours detected: 95	Expected: 2
    +
    +- Glyph name: uni043F	Contours detected: 112	Expected: 1
    +
    +- Glyph name: uni0440	Contours detected: 37	Expected: 2
    +
    +- Glyph name: uni0441	Contours detected: 31	Expected: 1
    +
    +- Glyph name: uni0442	Contours detected: 66	Expected: 1
    +
    +- Glyph name: uni0443	Contours detected: 38	Expected: 1
    +
    +- Glyph name: uni0444	Contours detected: 36	Expected: 3
    +
    +- Glyph name: uni0445	Contours detected: 6	Expected: 1
    +
    +- Glyph name: uni0446	Contours detected: 25	Expected: 1
    +
    +- Glyph name: uni0447	Contours detected: 44	Expected: 1
    +
    +- Glyph name: uni0448	Contours detected: 85	Expected: 1
    +
    +- Glyph name: uni0449	Contours detected: 67	Expected: 1
    +
    +- Glyph name: uni044A	Contours detected: 61	Expected: 2
    +
    +- Glyph name: uni044B	Contours detected: 42	Expected: 3
    +
    +- Glyph name: uni044C	Contours detected: 75	Expected: 2
    +
    +- Glyph name: uni044D	Contours detected: 26	Expected: 1
    +
    +- Glyph name: uni044E	Contours detected: 14	Expected: 2
    +
    +- Glyph name: uni044F	Contours detected: 14	Expected: 2
    +
    +- Glyph name: uni0450	Contours detected: 23	Expected: 3
    +
    +- Glyph name: uni0451	Contours detected: 34	Expected: 4
    +
    +- Glyph name: uni0452	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni0453	Contours detected: 52	Expected: 2
    +
    +- Glyph name: uni0454	Contours detected: 14	Expected: 1
    +
    +- Glyph name: uni0455	Contours detected: 18	Expected: 1
    +
    +- Glyph name: uni0456	Contours detected: 31	Expected: 2
    +
    +- Glyph name: uni0457	Contours detected: 47	Expected: 3
    +
    +- Glyph name: uni0458	Contours detected: 9	Expected: 2
    +
    +- Glyph name: uni0459	Contours detected: 40	Expected: 2
    +
    +- Glyph name: uni045A	Contours detected: 29	Expected: 2
    +
    +- Glyph name: uni045B	Contours detected: 24	Expected: 1
    +
    +- Glyph name: uni045C	Contours detected: 16	Expected: 2
    +
    +- Glyph name: uni045D	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni045E	Contours detected: 54	Expected: 2
    +
    +- Glyph name: uni045F	Contours detected: 68	Expected: 1 or 2
    +
    +- Glyph name: uni0462	Contours detected: 16	Expected: 2
    +
    +- Glyph name: uni0463	Contours detected: 27	Expected: 2
    +
    +- Glyph name: uni046A	Contours detected: 90	Expected: 2
    +
    +- Glyph name: uni046B	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni0472	Contours detected: 78	Expected: 3
    +
    +- Glyph name: uni0473	Contours detected: 35	Expected: 3
    +
    +- Glyph name: uni0474	Contours detected: 22	Expected: 1
    +
    +- Glyph name: uni0475	Contours detected: 35	Expected: 1
    +
    +- Glyph name: uni0490	Contours detected: 24	Expected: 1
    +
    +- Glyph name: uni0491	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni0492	Contours detected: 20	Expected: 1
    +
    +- Glyph name: uni0493	Contours detected: 44	Expected: 1
    +
    +- Glyph name: uni0494	Contours detected: 118	Expected: 1
    +
    +- Glyph name: uni0495	Contours detected: 88	Expected: 1
    +
    +- Glyph name: uni0496	Contours detected: 38	Expected: 1 or 2
    +
    +- Glyph name: uni0497	Contours detected: 59	Expected: 1 or 2
    +
    +- Glyph name: uni0498	Contours detected: 16	Expected: 1 or 2
    +
    +- Glyph name: uni0499	Contours detected: 25	Expected: 1 or 2
    +
    +- Glyph name: uni049A	Contours detected: 13	Expected: 1 or 2
    +
    +- Glyph name: uni049B	Contours detected: 11	Expected: 1 or 2
    +
    +- Glyph name: uni049C	Contours detected: 131	Expected: 1
    +
    +- Glyph name: uni049D	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni04A0	Contours detected: 138	Expected: 1
    +
    +- Glyph name: uni04A1	Contours detected: 54	Expected: 1
    +
    +- Glyph name: uni04A2	Contours detected: 71	Expected: 1 or 2
    +
    +- Glyph name: uni04A3	Contours detected: 13	Expected: 1 or 2
    +
    +- Glyph name: uni04A4	Contours detected: 36	Expected: 1
    +
    +- Glyph name: uni04A5	Contours detected: 53	Expected: 1
    +
    +- Glyph name: uni04AA	Contours detected: 20	Expected: 1 or 2
    +
    +- Glyph name: uni04AB	Contours detected: 59	Expected: 1 or 2
    +
    +- Glyph name: uni04B6	Contours detected: 16	Expected: 1 or 2
    +
    +- Glyph name: uni04B7	Contours detected: 24	Expected: 1 or 2
    +
    +- Glyph name: uni04B8	Contours detected: 59	Expected: 1
    +
    +- Glyph name: uni04B9	Contours detected: 29	Expected: 1
    +
    +- Glyph name: uni04BA	Contours detected: 113	Expected: 1
    +
    +- Glyph name: uni04BB	Contours detected: 63	Expected: 1
    +
    +- Glyph name: uni04C0	Contours detected: 31	Expected: 1
    +
    +- Glyph name: uni04C1	Contours detected: 36	Expected: 2
    +
    +- Glyph name: uni04C2	Contours detected: 45	Expected: 2
    +
    +- Glyph name: uni04CB	Contours detected: 102	Expected: 1 or 2
    +
    +- Glyph name: uni04CF	Contours detected: 51	Expected: 1
    +
    +- Glyph name: uni04D0	Contours detected: 100	Expected: 3
    +
    +- Glyph name: uni04D1	Contours detected: 36	Expected: 3
    +
    +- Glyph name: uni04D2	Contours detected: 106	Expected: 4
    +
    +- Glyph name: uni04D3	Contours detected: 33	Expected: 4
    +
    +- Glyph name: uni04D4	Contours detected: 44	Expected: 2
    +
    +- Glyph name: uni04D5	Contours detected: 27	Expected: 3
    +
    +- Glyph name: uni04D6	Contours detected: 16	Expected: 2
    +
    +- Glyph name: uni04D7	Contours detected: 37	Expected: 3
    +
    +- Glyph name: uni04D8	Contours detected: 29	Expected: 2
    +
    +- Glyph name: uni04D9	Contours detected: 21	Expected: 2
    +
    +- Glyph name: uni04DC	Contours detected: 42	Expected: 3
    +
    +- Glyph name: uni04DD	Contours detected: 42	Expected: 3
    +
    +- Glyph name: uni04DE	Contours detected: 33	Expected: 3
    +
    +- Glyph name: uni04DF	Contours detected: 22	Expected: 3
    +
    +- Glyph name: uni04E2	Contours detected: 18	Expected: 2
    +
    +- Glyph name: uni04E3	Contours detected: 3	Expected: 2
    +
    +- Glyph name: uni04E4	Contours detected: 30	Expected: 3
    +
    +- Glyph name: uni04E5	Contours detected: 15	Expected: 3
    +
    +- Glyph name: uni04E6	Contours detected: 124	Expected: 4
    +
    +- Glyph name: uni04E7	Contours detected: 108	Expected: 4
    +
    +- Glyph name: uni04E8	Contours detected: 9	Expected: 3
    +
    +- Glyph name: uni04E9	Contours detected: 35	Expected: 3
    +
    +- Glyph name: uni04EE	Contours detected: 17	Expected: 2
    +
    +- Glyph name: uni04EF	Contours detected: 39	Expected: 2
    +
    +- Glyph name: uni04F0	Contours detected: 29	Expected: 3
    +
    +- Glyph name: uni04F1	Contours detected: 51	Expected: 3
    +
    +- Glyph name: uni04F2	Contours detected: 42	Expected: 3
    +
    +- Glyph name: uni04F3	Contours detected: 64	Expected: 3
    +
    +- Glyph name: uni04F4	Contours detected: 88	Expected: 3
    +
    +- Glyph name: uni04F5	Contours detected: 57	Expected: 3
    +
    +- Glyph name: uni04F6	Contours detected: 8	Expected: 1 or 2
    +
    +- Glyph name: uni04F7	Contours detected: 52	Expected: 1 or 2
    +
    +- Glyph name: uni04F8	Contours detected: 95	Expected: 5
    +
    +- Glyph name: uni04F9	Contours detected: 55	Expected: 5
    +
    +- Glyph name: uni051A	Contours detected: 24	Expected: 2
    +
    +- Glyph name: uni051B	Contours detected: 30	Expected: 2
    +
    +- Glyph name: uni051C	Contours detected: 50	Expected: 1
    +
    +- Glyph name: uni051D	Contours detected: 63	Expected: 1
    +
    +- Glyph name: uni0524	Contours detected: 48	Expected: 1
    +
    +- Glyph name: uni0525	Contours detected: 23	Expected: 1
    +
    +- Glyph name: uni1E9E	Contours detected: 78	Expected: 1
    +
    +- Glyph name: uni20AA	Contours detected: 25	Expected: 2
    +
    +- Glyph name: uni20AE	Contours detected: 13	Expected: 1
    +
    +- Glyph name: uni20B4	Contours detected: 62	Expected: 1 or 2
    +
    +- Glyph name: uni20B8	Contours detected: 10	Expected: 2
    +
    +- Glyph name: uni20B9	Contours detected: 16	Expected: 1
    +
    +- Glyph name: uni20BD	Contours detected: 101	Expected: 2
    +
    +- Glyph name: uni2116	Contours detected: 115	Expected: 3 or 4
    +
    +- Glyph name: uni2206	Contours detected: 61	Expected: 2
    +
    +- Glyph name: uni2215	Contours detected: 38	Expected: 1
    +
    +- Glyph name: uogonek	Contours detected: 20	Expected: 1
    +
    +- Glyph name: uring	Contours detected: 48	Expected: 3
    +
    +- Glyph name: utilde	Contours detected: 49	Expected: 2
    +
    +- Glyph name: v	Contours detected: 16	Expected: 1
    +
    +- Glyph name: w	Contours detected: 63	Expected: 1
    +
    +- Glyph name: wacute	Contours detected: 66	Expected: 2
    +
    +- Glyph name: wcircumflex	Contours detected: 75	Expected: 2
    +
    +- Glyph name: wdieresis	Contours detected: 76	Expected: 3
    +
    +- Glyph name: wgrave	Contours detected: 65	Expected: 2
    +
    +- Glyph name: x	Contours detected: 6	Expected: 1
    +
    +- Glyph name: y	Contours detected: 24	Expected: 1
    +
    +- Glyph name: yacute	Contours detected: 27	Expected: 2
    +
    +- Glyph name: ycircumflex	Contours detected: 36	Expected: 2
    +
    +- Glyph name: ydieresis	Contours detected: 37	Expected: 3
    +
    +- Glyph name: yen	Contours detected: 30	Expected: 1 or 2
    +
    +- Glyph name: ygrave	Contours detected: 26	Expected: 2
    +
    +- Glyph name: z	Contours detected: 26	Expected: 1
    +
    +- Glyph name: zacute	Contours detected: 29	Expected: 2
    +
    +- Glyph name: zcaron	Contours detected: 35	Expected: 2
    +
    +- Glyph name: zdotaccent	Contours detected: 36	Expected: 2
    +
    +- Glyph name: zero	Contours detected: 83	Expected: 2 or 3
    +
    +

    [code: contour-count]

    +
+

Check math signs have the same width.

+
Check ID: com.google.fonts/check/math_signs_width
+ +
⚠️ RubikBrokenFax-Regular.ttf
  • ⚠️ WARN

    The most common width is 538 among a set of 2 math glyphs. +The following math glyphs have a different width, though:

    +

    Width = 594: +plus

    +

    Width = 563: +equal

    +

    Width = 564: +logicalnot

    +

    Width = 576: +plusminus

    +

    Width = 639: +multiply

    +

    Width = 517: +divide

    +

    Width = 642: +minus

    +

    Width = 551: +approxequal, notequal

    +

    Width = 556: +greaterequal, lessequal +[code: width-outliers]

    +
+

Section: Shaping Checks

+⚠️⏩⏩⏩⏩ +

Ensure dotted circle glyph is present and can attach marks.

+
Check ID: com.google.fonts/check/dotted_circle
+ +
⚠️ RubikBrokenFax-Regular.ttf
  • ⚠️ WARN

    No dotted circle glyph present [code: missing-dotted-circle]

    +
+
+ + \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikbrokenfax-report.json b/docs/fontbakery-reports/rubikbrokenfax-report.json new file mode 100644 index 0000000..a4a90fb --- /dev/null +++ b/docs/fontbakery-reports/rubikbrokenfax-report.json @@ -0,0 +1 @@ +{"result": {"FAIL": 4, "INFO": 9, "PASS": 161, "SKIP": 65, "WARN": 8}, "sections": [{"checks": [{"description": "Fonts have equal codepoint coverage", "experimental": "Since 2023/Oct/13", "key": ["", "", []], "logs": [{"message": "All font files in this family have an equivalent encoded glyphset.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Ensure that all variable font files have the same set of axes and axis ranges.", "key": ["", "", []], "logs": [{"message": "Unfulfilled Conditions: VFs", "status": "SKIP", "traceback": null}], "rationale": "\n In order to facilitate the construction of intuitive and friendly user\n interfaces, all variable font files in a given family should have the same set\n of variation axes. Also, each axis must have a consistent setting of min/max\n value ranges accross all the files.\n ", "result": "SKIP"}, {"description": "All tabular figures must have the same width across the RIBBI-family.", "key": ["", "", []], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Tabular figures need to have the same metrics in all styles in order to allow\n tables to be set with proper typographic control, but to maintain the placement\n of decimals and numeric columns between rows.\n\n Here's a good explanation of this:\n https://www.typography.com/techniques/fonts-for-financials/#tabular-figs\n ", "result": "PASS"}, {"description": "Does font file include unacceptable control character glyphs?", "key": ["", "", []], "logs": [{"message": "Unacceptable control characters were not identified.", "status": "PASS", "traceback": null}], "rationale": "\n Use of some unacceptable control characters in the U+0000 - U+001F range can\n lead to rendering issues on some platforms.\n\n Acceptable control characters are defined as .null (U+0000) and\n CR (U+000D) for this test.\n ", "result": "PASS"}, {"description": "Ensure Italic styles have Roman counterparts.", "key": ["", "", []], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n For each font family on Google Fonts, every Italic style must have\n a Roman sibling.\n\n This kind of problem was first observed at [1] where the Bold style was\n missing but BoldItalic was included.\n\n [1] https://github.com/google/fonts/pull/1482\n ", "result": "PASS"}, {"description": "Check axis ordering on the STAT table.", "key": ["", "", []], "logs": [{"message": "This font does not have a STAT table: /home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf [code: missing-STAT]", "status": "SKIP", "traceback": null}, {"message": "From a total of 1 font files, 1 of them (100.00%) lack a STAT table.\n\n\tAnd these are the most common STAT axis orderings:\n\t [code: summary]", "status": "INFO", "traceback": null}], "rationale": "\n This is (for now) a merely informative check to detect what's the axis ordering\n declared on the STAT table of fonts in the Google Fonts collection.\n\n We may later update this to enforce some unified axis ordering scheme,\n yet to be determined.\n ", "result": "INFO"}, {"description": "Check README.md has a sample image.", "key": ["", "", []], "logs": [{"message": "Unfulfilled Conditions: readme_contents, readme_directory", "status": "SKIP", "traceback": null}], "rationale": "\n In order to showcase what a font family looks like, the project's README.md\n file should ideally include a sample image and highlight it in the upper\n portion of the document, no more than 10 lines away from the top of the file.\n ", "result": "SKIP"}, {"description": "Checking file is named canonically.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font filename is correct, \"RubikBrokenFax-Regular.ttf\".", "status": "PASS", "traceback": null}], "rationale": "\n A font's filename must be composed as \"-.ttf\":\n\n - Nunito-Regular.ttf\n\n - Oswald-BoldItalic.ttf\n\n\n Variable fonts must list the axis tags in alphabetical order in\n square brackets and separated by commas:\n\n - Roboto[wdth,wght].ttf\n\n - Familyname-Italic[wght].ttf\n ", "result": "PASS"}, {"description": "Does DESCRIPTION file contain broken links?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All links in the DESCRIPTION file look good!", "status": "PASS", "traceback": null}], "rationale": "\n The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font\n family webpage on the Google Fonts website. For that reason, all hyperlinks\n in it must be properly working.\n ", "result": "PASS"}, {"description": "URLs on DESCRIPTION file must not display http(s) prefix.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All good!", "status": "PASS", "traceback": null}], "rationale": "\n The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font\n family webpage on the Google Fonts website.\n\n Google Fonts has a content formatting policy for that snippet that expects the\n text content of anchors not to include the http:// or https:// prefixes.\n ", "result": "PASS"}, {"description": "Does DESCRIPTION file contain a upstream Git repo URL?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Found a git repo URL: https://github.com/NaN-xyz/Glyph-Filters [code: url-found]", "status": "INFO", "traceback": null}, {"message": "Found a git repo URL: https://github.com/NaN-xyz/Rubik-Filtered [code: url-found]", "status": "INFO", "traceback": null}, {"message": "Looks great!", "status": "PASS", "traceback": null}], "rationale": "\n The contents of the DESCRIPTION.en-us.html file are displayed on the\n Google Fonts website in the about section of each font family specimen page.\n\n Since all of the Google Fonts collection is composed of libre-licensed fonts,\n this check enforces a policy that there must be a hypertext link in that page\n directing users to the repository where the font project files are\n made available.\n\n Such hosting is typically done on sites like Github, Gitlab, GNU Savannah or\n any other git-based version control service.\n ", "result": "INFO"}, {"description": "Is this a proper HTML snippet?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/DESCRIPTION.en_us.html is a propper HTML file.", "status": "PASS", "traceback": null}], "rationale": "\n Sometimes people write malformed HTML markup. This check should ensure the\n file is good.\n\n Additionally, when packaging families for being pushed to the `google/fonts`\n git repo, if there is no DESCRIPTION.en_us.html file, some older versions of\n the `add_font.py` tool insert a placeholder description file which contains\n invalid html. This file needs to either be replaced with an existing\n description file or edited by hand.\n ", "result": "PASS"}, {"description": "DESCRIPTION.en_us.html must have more than 200 bytes.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "DESCRIPTION.en_us.html is larger than 200 bytes.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "DESCRIPTION.en_us.html should end in a linebreak.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": ":-)", "status": "PASS", "traceback": null}], "rationale": "\n Some older text-handling tools sometimes misbehave if the last line of data\n in a text file is not terminated with a newline character (also known as '\\n').\n\n We know that this is a very small detail, but for the sake of keeping all\n DESCRIPTION.en_us.html files uniformly formatted throughout the GFonts\n collection, we chose to adopt the practice of placing this final linebreak\n character on them.\n ", "result": "PASS"}, {"description": "Check METADATA.pb parse correctly.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb parsed successfuly.", "status": "PASS", "traceback": null}], "rationale": "\n The purpose of this check is to ensure that the METADATA.pb file is not\n malformed.\n ", "result": "PASS"}, {"description": "Font designer field in METADATA.pb must not be 'unknown'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font designer field is not 'unknown'.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font designer field in METADATA.pb must not contain 'Multiple designers'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good.", "status": "PASS", "traceback": null}], "rationale": "\n For a while the string \"Multiple designers\" was used as a placeholder on\n METADATA.pb files. We should replace all those instances with actual designer\n names so that proper credits are displayed on the Google Fonts family\n specimen pages.\n\n If there's more than a single designer, the designer names must be\n separated by commas.\n ", "result": "PASS"}, {"description": "Multiple values in font designer field in METADATA.pb must be separated by commas.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good.", "status": "PASS", "traceback": null}], "rationale": "\n We must use commas instead of forward slashes because the server-side code\n at the fonts.google.com directory will segment the string on the commas into\n a list of names and display the first item in the list as the\n \"principal designer\" while the remaining names are identified as \"contributors\".\n\n See eg https://fonts.google.com/specimen/Rubik\n ", "result": "PASS"}, {"description": "Does METADATA.pb copyright field contain broken links?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All links in the METADATA.pb file look good!", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Ensure METADATA.pb lists all font binaries.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n The set of font binaries available, except the ones on a \"static\" subdir,\n must match exactly those declared on the METADATA.pb file.\n\n Also, to avoid confusion, we expect that font files (other than statics)\n are not placed on subdirectories.\n ", "result": "PASS"}, {"description": "Ensure METADATA.pb category field is valid.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK!", "status": "PASS", "traceback": null}], "rationale": "\n There are only five acceptable values for the category field in a METADATA.pb\n file:\n\n - MONOSPACE\n\n - SANS_SERIF\n\n - SERIF\n\n - DISPLAY\n\n - HANDWRITING\n\n This check is meant to avoid typos in this field.\n ", "result": "PASS"}, {"description": "Checking OS/2 fsType does not impose restrictions.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 fsType is properly set to zero.", "status": "PASS", "traceback": null}], "rationale": "\n The fsType in the OS/2 table is a legacy DRM-related field. Fonts in the\n Google Fonts collection must have it set to zero (also known as\n \"Installable Embedding\"). This setting indicates that the fonts can be\n embedded in documents and permanently installed by applications on\n remote systems.\n\n More detailed info is available at:\n https://docs.microsoft.com/en-us/typography/opentype/spec/os2#fstype\n ", "result": "PASS"}, {"description": "Checking OS/2 achVendID.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx\n [code: unknown]", "status": "WARN", "traceback": null}], "rationale": "\n Microsoft keeps a list of font vendors and their respective contact info. This\n list is updated regularly and is indexed by a 4-char \"Vendor ID\" which is\n stored in the achVendID field of the OS/2 table.\n\n Registering your ID is not mandatory, but it is a good practice since some\n applications may display the type designer / type foundry contact info on some\n dialog and also because that info will be visible on Microsoft's website:\n\n https://docs.microsoft.com/en-us/typography/vendors/\n\n This check verifies whether or not a given font's vendor ID is registered in\n that list or if it has some of the default values used by the most common\n font editors.\n\n Each new FontBakery release includes a cached copy of that list of vendor IDs.\n If you registered recently, you're safe to ignore warnings emitted by this\n check, since your ID will soon be included in one of our upcoming releases.\n ", "result": "WARN"}, {"description": "Check Google Fonts glyph coverage.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Google Fonts expects that fonts in its collection support at least the minimal\n set of characters defined in the `GF-latin-core` glyph-set.\n ", "result": "PASS"}, {"description": "Check for METADATA subsets with zero support.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n This check ensures that the subsets specified on a METADATA.pb file are\n actually supported (even if only partially) by the font files.\n\n Subsets for which none of the codepoints are supported will cause the\n check to FAIL.\n ", "result": "PASS", "severity": 10}, {"description": "Check for codepoints not covered by METADATA subsets.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The following codepoints supported by the font are not covered by\n any subsets defined in the font's metadata file, and will never\n be served. You can solve this by either manually adding additional\n subset declarations to METADATA.pb, or by editing the glyphset\n definitions.\n\n * U+02C7 CARON: try adding one of: tifinagh, yi, canadian-aboriginal\n * U+02D8 BREVE: try adding one of: yi, canadian-aboriginal\n * U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal\n * U+02DB OGONEK: try adding one of: yi, canadian-aboriginal\n * U+02DD DOUBLE ACUTE ACCENT: not included in any glyphset definition\n * U+0306 COMBINING BREVE: try adding one of: tifinagh, old-permic\n * U+030A COMBINING RING ABOVE: try adding syriac\n * U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee\n * U+030C COMBINING CARON: try adding one of: tai-le, cherokee\n * U+0312 COMBINING TURNED COMMA ABOVE: not included in any glyphset definition\n * U+0326 COMBINING COMMA BELOW: not included in any glyphset definition\n * U+0327 COMBINING CEDILLA: not included in any glyphset definition\n * U+0328 COMBINING OGONEK: not included in any glyphset definition\n * U+0335 COMBINING SHORT STROKE OVERLAY: not included in any glyphset definition\n * U+0337 COMBINING SHORT SOLIDUS OVERLAY: not included in any glyphset definition\n * U+0338 COMBINING LONG SOLIDUS OVERLAY: not included in any glyphset definition\n * U+2021 DOUBLE DAGGER: try adding adlam\n * U+2030 PER MILLE SIGN: try adding adlam\n * U+2070 SUPERSCRIPT ZERO: not included in any glyphset definition\n * U+2075 SUPERSCRIPT FIVE: not included in any glyphset definition\n * U+2076 SUPERSCRIPT SIX: not included in any glyphset definition\n * U+2077 SUPERSCRIPT SEVEN: not included in any glyphset definition\n * U+2078 SUPERSCRIPT EIGHT: not included in any glyphset definition\n * U+2079 SUPERSCRIPT NINE: not included in any glyphset definition\n * U+207D SUPERSCRIPT LEFT PARENTHESIS: not included in any glyphset definition\n * U+207E SUPERSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition\n * U+2080 SUBSCRIPT ZERO: not included in any glyphset definition\n * U+2081 SUBSCRIPT ONE: not included in any glyphset definition\n * U+2082 SUBSCRIPT TWO: not included in any glyphset definition\n * U+2083 SUBSCRIPT THREE: not included in any glyphset definition\n * U+2084 SUBSCRIPT FOUR: not included in any glyphset definition\n * U+2085 SUBSCRIPT FIVE: not included in any glyphset definition\n * U+2086 SUBSCRIPT SIX: not included in any glyphset definition\n * U+2087 SUBSCRIPT SEVEN: not included in any glyphset definition\n * U+2088 SUBSCRIPT EIGHT: not included in any glyphset definition\n * U+2089 SUBSCRIPT NINE: not included in any glyphset definition\n * U+208D SUBSCRIPT LEFT PARENTHESIS: not included in any glyphset definition\n * U+208E SUBSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition\n * U+212E ESTIMATED SYMBOL: not included in any glyphset definition\n * U+2153 VULGAR FRACTION ONE THIRD: not included in any glyphset definition\n * U+2154 VULGAR FRACTION TWO THIRDS: not included in any glyphset definition\n * U+215B VULGAR FRACTION ONE EIGHTH: not included in any glyphset definition\n * U+215C VULGAR FRACTION THREE EIGHTHS: not included in any glyphset definition\n * U+215D VULGAR FRACTION FIVE EIGHTHS: not included in any glyphset definition\n * U+215E VULGAR FRACTION SEVEN EIGHTHS: not included in any glyphset definition\n * U+FB01 LATIN SMALL LIGATURE FI: not included in any glyphset definition\n * U+FB02 LATIN SMALL LIGATURE FL: not included in any glyphset definition\n\nOr you can add the above codepoints to one of the subsets supported by the font: `cyrillic`, `cyrillic-ext`, `hebrew`, `latin`, `latin-ext`, `math`, `menu`, `symbols` [code: unreachable-subsetting]", "status": "WARN", "traceback": null}], "rationale": "\n This check ensures that all encoded glyphs in the font are covered by a\n subset declared in the METADATA.pb. Google Fonts splits the font into\n a set of subset fonts based on the contents of the `subsets` field and\n the subset definitions in the `glyphsets` repository.\n\n Any encoded glyphs which are not by any of these subset definitions\n will not be served in the subsetted fonts, and so will be unreachable to\n the end user.\n ", "result": "WARN", "severity": 2}, {"description": "Substitute copyright, registered and trademark symbols in name table entries.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No need to substitute copyright, registered and trademark symbols in name table entries of this font.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check the OS/2 usWeightClass is appropriate for the font's best SubFamily name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 usWeightClass is good", "status": "PASS", "traceback": null}], "rationale": "\n Google Fonts expects variable fonts, static ttfs and static otfs to have\n differing OS/2 usWeightClass values.\n\n - For Variable Fonts, Thin-Black must be 100-900\n\n - For static ttfs, Thin-Black can be 100-900 or 250-900\n\n - For static otfs, Thin-Black must be 250-900\n\n If static otfs are set lower than 250, text may appear blurry in\n legacy Windows applications.\n\n Glyphsapp users can change the usWeightClass value of an instance by adding\n a 'weightClass' customParameter.\n ", "result": "PASS"}, {"description": "Check font has a license.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Found license at '/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/OFL.txt'", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check license file has good copyright string.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "looks good", "status": "PASS", "traceback": null}], "rationale": "\n An OFL.txt file's first line should be the font copyright e.g:\n \"Copyright 2019 The Montserrat Project Authors\n (https://github.com/julietaula/montserrat)\"\n ", "result": "PASS", "severity": 10}, {"description": "Check OFL body text is correct.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OFL license body text is correct", "status": "PASS", "traceback": null}], "rationale": "\n Check OFL body text is correct.\n Often users will accidently delete parts of the body text.\n ", "result": "PASS", "severity": 10}, {"description": "Check copyright namerecords match license file.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Licensing entry on name table is correctly set.", "status": "PASS", "traceback": null}], "rationale": "\n A known licensing description must be provided in the NameID 14\n (LICENSE DESCRIPTION) entries of the name table.\n\n The source of truth for this check (to determine which license is in use) is\n a file placed side-by-side to your font project including the licensing terms.\n\n Depending on the chosen license, one of the following string snippets is\n expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the\n name table:\n\n - \"This Font Software is licensed under the SIL Open Font License, Version 1.1.\n This license is available with a FAQ at: https://scripts.sil.org/OFL\"\n\n - \"Licensed under the Apache License, Version 2.0\"\n\n - \"Licensed under the Ubuntu Font Licence 1.0.\"\n\n\n Currently accepted licenses are Apache or Open Font License. For a small set\n of legacy families the Ubuntu Font License may be acceptable as well.\n\n When in doubt, please choose OFL for new font projects.\n ", "result": "PASS"}, {"description": "License URL matches License text on name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has a valid license URL in NAME table.", "status": "PASS", "traceback": null}], "rationale": "\n A known license URL must be provided in the NameID 14 (LICENSE INFO URL)\n entry of the name table.\n\n The source of truth for this check is the licensing text found on the NameID 13\n entry (LICENSE DESCRIPTION).\n\n The string snippets used for detecting licensing terms are:\n\n - \"This Font Software is licensed under the SIL Open Font License, Version 1.1.\n This license is available with a FAQ at: https://scripts.sil.org/OFL\"\n\n - \"Licensed under the Apache License, Version 2.0\"\n\n - \"Licensed under the Ubuntu Font Licence 1.0.\"\n\n\n Currently accepted licenses are Apache or Open Font License. For a small set of\n legacy families the Ubuntu Font License may be acceptable as well.\n\n When in doubt, please choose OFL for new font projects.\n ", "result": "PASS"}, {"description": "Description strings in the name table must not exceed 200 characters.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All description name records have reasonably small lengths.", "status": "PASS", "traceback": null}], "rationale": "\n An old FontLab version had a bug which caused it to store copyright notices\n in nameID 10 entries.\n\n In order to detect those and distinguish them from actual legitimate usage of\n this name table entry, we expect that such strings do not exceed a reasonable\n length of 200 chars.\n\n Longer strings are likely instances of the FontLab bug.\n ", "result": "PASS"}, {"description": "Show hinting filesize impact.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Hinting filesize impact:\n\n | | /home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf |\n |:------------- | ---------------:|\n | Dehinted Size | 483.4kb |\n | Hinted Size | 483.4kb |\n | Increase | 24 bytes |\n | Change | 0.0 % |\n [code: size-impact]", "status": "INFO", "traceback": null}], "rationale": "\n This check is merely informative, displaying and useful comparison of filesizes\n of hinted versus unhinted font files.\n ", "result": "INFO"}, {"description": "Ensure files are not too large.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font had a reasonable file size", "status": "PASS", "traceback": null}], "rationale": "\n Serving extremely large font files on Google Fonts causes usability issues.\n This check ensures that file sizes are reasonable.\n ", "result": "PASS", "severity": 10}, {"description": "Version format is correct in 'name' table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Version format in NAME table entries is correct.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font has ttfautohint params?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font appears to our heuristic as not hinted using ttfautohint. [code: not-hinted]", "status": "SKIP", "traceback": null}], "result": "SKIP"}, {"description": "Font has old ttfautohint applied?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 2.201'] [code: version-not-detected]", "status": "INFO", "traceback": null}], "rationale": "\n Check if font has been hinted with an outdated version of ttfautohint.\n ", "result": "INFO"}, {"description": "EPAR table present in font?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "EPAR table not present in font. To learn more see https://github.com/fonttools/fontbakery/issues/818 [code: lacks-EPAR]", "status": "INFO", "traceback": null}], "rationale": "\n The EPAR table is/was a way of expressing common licensing permissions and\n restrictions in metadata; while almost nothing supported it, Dave Crossland\n wonders that adding it to everything in Google Fonts could help make it\n more popular.\n\n More info is available at:\n https://davelab6.github.io/epar/\n ", "result": "INFO", "severity": 1}, {"description": "Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "These are the ppm ranges declared on the gasp table:\n\nPPM <= 65535:\n\tflag = 0x0F\n\t- Use grid-fitting\n\t- Use grayscale rendering\n\t- Use gridfitting with ClearType symmetric smoothing\n\t- Use smoothing along multiple axes with ClearType\u00ae\n [code: ranges]", "status": "INFO", "traceback": null}, {"message": "The 'gasp' table is correctly set, with one gaspRange:value of 0xFFFF:0x0F.", "status": "PASS", "traceback": null}], "rationale": "\n Traditionally version 0 'gasp' tables were set so that font sizes below 8 ppem\n had no grid fitting but did have antialiasing. From 9-16 ppem, just grid\n fitting.\n And fonts above 17ppem had both antialiasing and grid fitting toggled on.\n The use of accelerated graphics cards and higher resolution screens make this\n approach obsolete. Microsoft's DirectWrite pushed this even further with much\n improved rendering built into the OS and apps.\n\n In this scenario it makes sense to simply toggle all 4 flags ON for all font\n sizes.\n ", "result": "INFO"}, {"description": "Make sure family name does not begin with a digit.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font family name first character is not a digit.", "status": "PASS", "traceback": null}], "rationale": "\n Font family names which start with a numeral are often not discoverable\n in Windows applications.\n ", "result": "PASS"}, {"description": "Are there non-ASCII characters in ASCII-only NAME table entries?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "None of the ASCII-only NAME table entries contain non-ASCII characteres.", "status": "PASS", "traceback": null}], "rationale": "\n The OpenType spec requires ASCII for the POSTSCRIPT_NAME (nameID 6).\n\n For COPYRIGHT_NOTICE (nameID 0) ASCII is required because that string should be\n the same in CFF fonts which also have this requirement in the OpenType spec.\n\n Note:\n A common place where we find non-ASCII strings is on name table entries\n with NameID > 18, which are expressly for localising the ASCII-only IDs\n into Hindi / Arabic / etc.\n ", "result": "PASS"}, {"description": "METADATA.pb: check if fonts field only has unique \"full_name\" values.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb \"fonts\" field only has unique \"full_name\" values.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: check if fonts field only contains unique style:weight pairs.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb \"fonts\" field only has unique style:weight pairs.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb license is \"APACHE2\", \"UFL\" or \"OFL\"?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font license is declared in METADATA.pb as \"OFL\"", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb should contain at least \"menu\" and \"latin\" subsets.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb contains \"menu\" and \"latin\" subsets.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb subsets should be alphabetically ordered.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb subsets are sorted in alphabetical order.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check METADATA.pb includes production subsets.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: listed_on_gfonts_api", "status": "SKIP", "traceback": null}], "rationale": "\n Check METADATA.pb file includes the same subsets as the family in production.\n ", "result": "SKIP"}, {"description": "METADATA.pb: Copyright notice is the same in all fonts?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Copyright is consistent across family", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check that METADATA.pb family values are all the same.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb: Family name is the same in all metadata \"fonts\" items.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: According to Google Fonts standards, families should have a Regular style.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Family has a Regular style.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Regular should be 400.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Regular has weight = 400.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checks METADATA.pb font.name field matches family name declared on the name table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Family name \"Rubik Broken Fax\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Postscript name \"RubikBrokenFax-Regular\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.full_name value matches fullname declared on the name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font fullname \"Rubik Broken Fax Regular\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.name value should be same as the family name declared on the name table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK: Family name \"Rubik Broken Fax\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "rationale": "\n This check ensures consistency between the font name declared on the name table\n and the contents of the METADATA.pb file.\n ", "result": "PASS"}, {"description": "METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font fields \"full_name\" and \"post_script_name\" have equivalent values.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.filename and font.post_script_name fields have equivalent values?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font fields \"filename\" and \"post_script_name\" have equivalent values.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.name field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font.name field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.full_name field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font.full_name field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.filename field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb filename field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.post_script_name field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb postScriptName field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check name ID 25 to end with \"Italic\" for Italic VFs.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Not an Italic VF.", "status": "PASS", "traceback": null}], "rationale": "\n Due to a bug in (at least) Adobe Indesign, name ID 25\n needs to be different for Italic VFs than their Upright counterparts.\n Google Fonts chooses to append \"Italic\" here.\n ", "result": "PASS"}, {"description": "Copyright notices match canonical pattern in METADATA.pb", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb copyright string is good", "status": "PASS", "traceback": null}], "rationale": "\n The expected pattern for the copyright string adheres to the following rules:\n\n * It must say \"Copyright\" followed by a 4 digit year (optionally followed by\n a hyphen and another 4 digit year)\n\n * Then it must say \"The Project Authors\"\n\n * And within parentheses, a URL for a git repository must be provided\n\n * The check is case insensitive and does not validate whether the familyname\n is correct, even though we'd expect it is (and we may soon update the check\n to validate that aspect as well!)\n\n\n Here is an example of a valid copyright string:\n\n \"Copyright 2017 The Archivo Black Project Authors\n (https://github.com/Omnibus-Type/ArchivoBlack)\"\n ", "result": "PASS"}, {"description": "Copyright notices match canonical pattern in fonts", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Name Table entry: Copyright field 'Copyright 2020 The Rubik Filtered Project Authors (https://github.com/NaN-xyz/Rubik-Filtered)' matches canonical pattern.", "status": "PASS", "traceback": null}, {"message": "Name table copyright entries are good", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Copyright notice on METADATA.pb should not contain 'Reserved Font Name'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb copyright field does not contain \"Reserved Font Name\".", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Copyright notice shouldn't exceed 500 chars.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Copyright notice string is shorter than 500 chars.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Font filenames match font.filename entries?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Filenames in METADATA.pb look good.", "status": "PASS", "traceback": null}], "rationale": "\n Note:\n This check only looks for files in the current directory.\n\n Font files in subdirectories are checked by these other two checks:\n - com.google.fonts/check/metadata/undeclared_fonts\n - com.google.fonts/check/repo/vf_has_static_fonts\n\n We may want to merge them all into a single check.\n ", "result": "PASS"}, {"description": "METADATA.pb font.style \"italic\" matches font internals?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This check only applies to italic fonts.", "status": "SKIP", "traceback": null}], "result": "SKIP"}, {"description": "METADATA.pb font.style \"normal\" matches font internals?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font.style \"normal\" matches font internals.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.name and font.full_name fields match the values declared on the name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb familyname and fullName fields match corresponding name table entries.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Check font name is the same as family name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font name is the same as family name.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Check that font weight has a canonical value.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font weight has a canonical value.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check METADATA.pb font weights are correct.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 usWeightClass or wght axis value matches weight specified at METADATA.pb", "status": "PASS", "traceback": null}], "rationale": "\n Check METADATA.pb font weights are correct.\n\n For static fonts, the metadata weight should be the same as the static font's\n OS/2 usWeightClass.\n\n For variable fonts, the weight value should be 400 if the font's wght axis range\n includes 400, otherwise it should be the value closest to 400.\n ", "result": "PASS"}, {"description": "METADATA.pb weight matches postScriptName for static fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Weight value matches postScriptName.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Font styles are named canonically?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font styles are named canonically.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Check URL on copyright string is the same as in repository_url field.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Repository URL is https://github.com/NaN-xyz/Rubik-Filtered\n\nBut: OFL text has 'https:/' and HTML description has 'github.com/NaN-xyz/Glyph-Filters'\n [code: mismatch]", "status": "FAIL", "traceback": null}], "rationale": "\n Sometimes, perhaps due to copy-pasting, projects may declare different URLs\n between the font.coyright and the family.sources.repository_url fields.\n ", "result": "FAIL"}, {"description": "METADATA.pb: Check for primary_script", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Try to guess font's primary script and see if that's set in METADATA.pb.\n This is an educated guess based on the number of glyphs per script in the font\n and should be taken with caution.\n ", "result": "PASS"}, {"description": "Shapes languages in all GF glyphsets.", "experimental": "Since 2023/Nov/02", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "GF_Latin_Core glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| haw_Latn (Hawaiian) | Some base glyphs were missing: \u02bb |\n| ^ | Shaper produced a .notdef |\n| mh_Latn (Marshallese) | Some base glyphs were missing: \u1e36, \u1e37, \u1e42, \u1e43, \u1e46, \u1e47, \u1ecc, \u1ecd |\n| ^ | Some mark glyphs were missing: \u25cc\u0323 |\n| ^ | Shaper produced a .notdef |\n| scn_Latn (Sicilian) | Some base glyphs were missing: \u1e0c, \u1e0d |\n| ^ | Shaper produced a .notdef |\n| teo_Latn (Teso) | Some base glyphs were missing: \u0186, \u0190, \u0197, \u0244, \u0254, \u025b, \u0268, \u0289, \u1d43, \u1d49, \u1d4b, \u1d52, \u1d53, \u1d58, \u1da4, \u1db6, \u2071 |\n| ^ | Shaper produced a .notdef |\n\n [code: failed-language-shaping]", "status": "FAIL", "traceback": null}, {"message": "GF_Latin_Core glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| lg_Latn (Ganda) | No variant glyphs were found for Eng |\n| dyo_Latn (Jola-Fonyi) | No variant glyphs were found for Eng |\n| ny_Latn (Nyanja) | No variant glyphs were found for Eng |\n| wo_Latn (Wolof) | No variant glyphs were found for Eng |\n\n [code: warning-language-shaping]", "status": "WARN", "traceback": null}, {"message": "GF_Cyrillic_Plus glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| tg_Cyrl (Tajik) | Some base glyphs were missing: \u04b3 |\n| ^ | Shaper produced a .notdef |\n| uz_Cyrl (Uzbek (Cyrillic)) | Some base glyphs were missing: \u04b3 |\n| ^ | Shaper produced a .notdef |\n\n [code: failed-language-shaping]", "status": "FAIL", "traceback": null}, {"message": "GF_Cyrillic_Plus glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| ku_Cyrl (Kurdish) | No exemplar glyphs were defined for language Kurdish |\n\n [code: warning-language-shaping]", "status": "WARN", "traceback": null}], "rationale": "\n This check uses a heuristic to determine which GF glyphsets a font supports.\n Then it checks the font for correct shaping behaviour for all languages in\n those glyphsets.\n ", "result": "FAIL"}, {"description": "Stricter unitsPerEm criteria for Google Fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font em size is good (unitsPerEm = 1000).", "status": "PASS", "traceback": null}], "rationale": "\n Even though the OpenType spec allows unitsPerEm to be any value between 16\n and 16384, the Google Fonts project aims at a narrower set of reasonable values.\n\n Values above 4000 would likely result in unreasonable\n filesize increases.\n ", "result": "PASS"}, {"description": "Glyphs are similiar to Google Fonts version?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: api_gfonts_ttFont", "status": "SKIP", "traceback": null}], "result": "SKIP"}, {"description": "Checking direction of slnt axis angles", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n The 'slnt' axis values are defined as negative values for a clockwise (right)\n lean, and positive values for counter-clockwise lean. This is counter-intuitive\n for many designers who are used to think of a positive slant as a lean to\n the right.\n\n This check ensures that the slant axis direction is consistent with the specs.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_slnt\n ", "result": "SKIP"}, {"description": "Check font names are correct", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font names are good:\n\n| nameID | current | expected |\n| :--- | :--- | :--- |\n| Family Name | Rubik Broken Fax | Rubik Broken Fax |\n| Subfamily Name | Regular | Regular |\n| Full Name | Rubik Broken Fax Regular | Rubik Broken Fax Regular |\n| Postscript Name | RubikBrokenFax-Regular | RubikBrokenFax-Regular |", "status": "PASS", "traceback": null}], "rationale": "\n Google Fonts has several rules which need to be adhered to when\n setting a font's name table. Please read:\n https://googlefonts.github.io/gf-guide/statics.html#supported-styles\n https://googlefonts.github.io/gf-guide/statics.html#style-linking\n https://googlefonts.github.io/gf-guide/statics.html#unsupported-styles\n https://googlefonts.github.io/gf-guide/statics.html#single-weight-families\n ", "result": "PASS"}, {"description": "Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Copyright field for this font on METADATA.pb matches copyright notice entries on the name table.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font has all mandatory 'name' table entries?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font contains values for all mandatory name table entries.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Length of copyright notice must not exceed 500 characters.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All copyright notice name entries on the 'name' table are shorter than 500 characters.", "status": "PASS", "traceback": null}], "rationale": "\n This is an arbitrary max length for the copyright notice field of the name\n table. We simply don't want such notices to be too long. Typically such notices\n are actually much shorter than this with a length of roughly 70 or 80\n characters.\n ", "result": "PASS"}, {"description": "Check for font-v versioning.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Version string is: \"Version 2.201\"\nThe version string must ideally include a git commit hash and either a \"dev\" or a \"release\" suffix such as in the example below:\n\"Version 1.3; git-0d08353-release\" [code: bad-format]", "status": "INFO", "traceback": null}], "rationale": "\n The git sha1 tagging and dev/release features of Source Foundry `font-v` tool\n are awesome and we would love to consider upstreaming the approach into\n fontmake someday. For now we only emit an INFO if a given font does not yet\n follow the experimental versioning style, but at some point we may start\n enforcing it.\n ", "result": "INFO"}, {"description": "Check glyphs do not have components which are themselves components.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyphs do not contain nested components.", "status": "PASS", "traceback": null}], "rationale": "\n There have been bugs rendering variable fonts with nested components.\n Additionally, some static fonts with nested components have been reported\n to have rendering and printing issues.\n\n For more info, see:\n * https://github.com/fonttools/fontbakery/issues/2961\n * https://github.com/arrowtype/recursive/issues/412\n ", "result": "PASS"}, {"description": "Check a static ttf can be generated from a variable font.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Google Fonts may serve static fonts which have been generated from variable\n fonts. This test will attempt to generate a static ttf using fontTool's\n varLib mutator.\n\n The target font will be the mean of each axis e.g:\n\n ## VF font axes\n\n - min weight, max weight = 400, 800\n\n - min width, max width = 50, 100\n\n ## Target Instance\n\n - weight = 600\n\n - width = 75\n ", "result": "SKIP"}, {"description": "Check that variable fonts have an HVAR table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Not having a HVAR table can lead to costly text-layout operations on some\n platforms, which we want to avoid.\n\n So, all variable fonts on the Google Fonts collection should have an HVAR\n with valid values.\n\n More info on the HVAR table can be found at:\n https://docs.microsoft.com/en-us/typography/opentype/spec/otvaroverview#variation-data-tables-and-miscellaneous-requirements\n ", "result": "SKIP"}, {"description": "Font enables smart dropout control in \"prep\" table instructions?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "'prep' table contains instructions enabling smart dropout control.", "status": "PASS", "traceback": null}], "rationale": "\n This setup is meant to ensure consistent rendering quality for fonts across\n all devices (with different rendering/hinting capabilities).\n\n Below is the snippet of instructions we expect to see in the fonts:\n B8 01 FF PUSHW 0x01FF\n 85 SCANCTRL (unconditinally turn on\n dropout control mode)\n B0 04 PUSHB 0x04\n 8D SCANTYPE (enable smart dropout control)\n\n \"Smart dropout control\" means activating rules 1, 2 and 5:\n Rule 1: If a pixel's center falls within the glyph outline,\n that pixel is turned on.\n Rule 2: If a contour falls exactly on a pixel's center,\n that pixel is turned on.\n Rule 5: If a scan line between two adjacent pixel centers\n (either vertical or horizontal) is intersected\n by both an on-Transition contour and an off-Transition\n contour and neither of the pixels was already turned on\n by rules 1 and 2, turn on the pixel which is closer to\n the midpoint between the on-Transition contour and\n off-Transition contour. This is \"Smart\" dropout control.\n\n For more detailed info (such as other rules not enabled in this snippet),\n please refer to the TrueType Instruction Set documentation.\n ", "result": "PASS"}, {"description": "There must not be VTT Talk sources in the font.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There are no tables with VTT Talk sources embedded in the font.", "status": "PASS", "traceback": null}], "rationale": "\n The goal here is to reduce filesizes and improve pageloading when dealing\n with webfonts.\n\n The VTT Talk sources are not necessary at runtime and endup being just dead\n weight when left embedded in the font binaries. The sources should be kept on\n the project files but stripped out when building release binaries.\n ", "result": "PASS"}, {"description": "Are there unwanted Apple tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There are no unwanted AAT tables.", "status": "PASS", "traceback": null}], "rationale": "\n Apple's TrueType reference manual [1] describes SFNT tables not in the\n Microsoft OpenType specification [2] and these can sometimes sneak into final\n release files, but Google Fonts should only have OpenType tables.\n\n [1] https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6.html\n [2] https://docs.microsoft.com/en-us/typography/opentype/spec/\n ", "result": "PASS"}, {"description": "Check a font's STAT table contains compulsory Axis Values.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check a font's STAT table contains compulsory Axis Values which exist\n in the Google Fonts Axis Registry.\n\n We cannot determine what Axis Values the user will set for axes such as\n opsz, GRAD since these axes are unique for each font so we'll skip them.\n ", "result": "SKIP"}, {"description": "Check variable font instances", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check a font's fvar instance coordinates comply with our guidelines:\n https://googlefonts.github.io/gf-guide/variable.html#fvar-instances\n ", "result": "SKIP"}, {"description": "All name entries referenced by fvar instances exist on the name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n The purpose of this check is to make sure that all name entries referenced\n by variable font instances do exist in the name table.\n ", "result": "SKIP"}, {"description": "PPEM must be an integer on hinted fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_hinted", "status": "SKIP", "traceback": null}], "rationale": "\n Hinted fonts must have head table flag bit 3 set.\n\n Per https://docs.microsoft.com/en-us/typography/opentype/spec/head,\n bit 3 of Head::flags decides whether PPEM should be rounded. This bit should\n always be set for hinted fonts.\n\n Note:\n Bit 3 = Force ppem to integer values for all internal scaler math;\n May use fractional ppem sizes if this bit is clear;\n ", "result": "SKIP"}, {"description": "Are there caret positions declared for every ligature?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n All ligatures in a font must have corresponding caret (text cursor) positions\n defined in the GDEF table, otherwhise, users may experience issues with\n caret rendering.\n\n If using GlyphsApp or UFOs, ligature carets can be defined as anchors with\n names starting with 'caret_'. These can be compiled with fontmake as of\n version v2.4.0.\n ", "result": "PASS"}, {"description": "Is there kerning info for non-ligated sequences?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "GPOS table lacks kerning info for the following non-ligated sequences:\n\n\t- f + f\n\n\t- f + i\n\n\t- i + f\n\n\t- f + l\n\n\t- l + f\n\n\t- i + l [code: lacks-kern-info]", "status": "WARN", "traceback": null}], "rationale": "\n Fonts with ligatures should have kerning on the corresponding non-ligated\n sequences for text where ligatures aren't used\n (eg https://github.com/impallari/Raleway/issues/14).\n ", "result": "WARN"}, {"description": "Combined length of family and style must not exceed 27 characters.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All name entries are good.", "status": "PASS", "traceback": null}], "rationale": "\n According to a GlyphsApp tutorial [1], in order to make sure all versions of\n Windows recognize it as a valid font file, we must make sure that the\n concatenated length of the familyname (NameID.FONT_FAMILY_NAME) and\n style (NameID.FONT_SUBFAMILY_NAME) strings in the name table do not\n exceed 20 characters.\n\n After discussing the problem in more detail at FontBakery issue #2179 [2] we\n decided that allowing up to 27 chars would still be on the safe side, though.\n\n [1] https://glyphsapp.com/tutorials/multiple-masters-part-3-setting-up-instances\n [2] https://github.com/fonttools/fontbakery/issues/2179\n ", "result": "PASS"}, {"description": "Name table entries should not contain line-breaks.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Name table entries are all single-line (no line-breaks found).", "status": "PASS", "traceback": null}], "rationale": "\n There are some entries on the name table that may include more than one line\n of text. The Google Fonts team, though, prefers to keep the name table entries\n short and simple without line breaks.\n\n For instance, some designers like to include the full text of a font license in\n the \"copyright notice\" entry, but for the GFonts collection this entry should\n only mention year, author and other basic info in a manner enforced by\n com.google.fonts/check/font_copyright\n ", "result": "PASS"}, {"description": "Name table strings must not contain the string 'Reserved Font Name'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "None of the name table strings contain \"Reserved Font Name\".", "status": "PASS", "traceback": null}], "rationale": "\n Some designers adopt the \"Reserved Font Name\" clause of the OFL license. This\n means that the original author reserves the rights to the family name and other\n people can only distribute modified versions using a different family name.\n\n Google Fonts published updates to the fonts in the collection in order to fix\n issues and/or implement further improvements to the fonts. It is important to\n keep the family name so that users of the webfonts can benefit from the updates.\n Since it would forbid such usage scenario, all families in the GFonts collection\n are required to not adopt the RFN clause.\n\n This check ensures \"Reserved Font Name\" is not mentioned in the name table.\n ", "result": "PASS"}, {"description": "Check family name for GF Guide compliance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font name looks good.", "status": "PASS", "traceback": null}], "rationale": "\n Checks the family name for compliance with the Google Fonts Guide.\n https://googlefonts.github.io/gf-guide/onboarding.html#new-fonts\n\n If you want to have your family name added to the CamelCase\n exceptions list, please submit a pull request to the\n camelcased_familyname_exceptions.txt file.\n\n Similarly, abbreviations can be submitted to the\n abbreviations_familyname_exceptions.txt file.\n\n These are located in the Lib/fontbakery/data/googlefonts/ directory\n of the FontBakery source code currently hosted at\n https://github.com/fonttools/fontbakery/\n ", "result": "PASS"}, {"description": "Directory name in GFonts repo structure must match NameID 1 of the regular.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "A static fonts directory, if present, must contain manually hinted fonts", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Variable font family directories kept in the google/fonts git repo may include\n a static/ subdir containing static fonts, if manual hinting is used on\n these fonts. Otherwise, the directory should be removed.\n ", "result": "PASS"}, {"description": "A font repository should not include FontBakery report files", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n A FontBakery report is ephemeral and so should be used for posting issues on a\n bug-tracker instead of being hosted in the font project repository.\n ", "result": "PASS"}, {"description": "Check upstream.yaml file contains all required fields", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The upstream.yaml file contains all necessary fields", "status": "PASS", "traceback": null}], "rationale": "\n If a family has been pushed using the gftools packager, we must check that all\n the required fields in the upstream.yaml file have been populated.\n ", "result": "PASS", "severity": 10}, {"description": "A font repository should not include ZIP files", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Sometimes people check in ZIPs into their font project repositories. While we\n accept the practice of checking in binaries, we believe that a ZIP is a step\n too far ;)\n\n Note: a source purist position is that only source files and build scripts\n should be checked in.\n ", "result": "PASS"}, {"description": "Check font follows the Google Fonts vertical metric schema", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The sum of hhea.ascender + abs(hhea.descender) + hhea.lineGap is 1185 when it should be at least 1200 [code: bad-hhea-range]", "status": "FAIL", "traceback": null}], "rationale": "\n This check generally enforces Google Fonts\u2019 vertical metrics specifications.\n In particular:\n * lineGap must be 0\n * Sum of hhea ascender + abs(descender) + linegap must be\n between 120% and 200% of UPM\n * Warning if sum is over 150% of UPM\n\n The threshold levels 150% (WARN) and 200% (FAIL) are somewhat arbitrarily chosen\n and may hint at a glaring mistake in the metrics calculations or UPM settings.\n\n Our documentation includes further information:\n https://github.com/googlefonts/gf-docs/tree/main/VerticalMetrics\n ", "result": "FAIL"}, {"description": "Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: regular_remote_style", "status": "SKIP", "traceback": null}], "rationale": "\n If the family already exists on Google Fonts, we need to ensure that the\n checked family's vertical metrics are similar. This check will test the\n following schema which was outlined in Font Bakery issue #1162 [1]:\n\n - The family should visually have the same vertical metrics as the Regular\n style hosted on Google Fonts.\n\n - If the family on Google Fonts has differing hhea and typo metrics, the family\n being checked should use the typo metrics for both the hhea and typo entries.\n\n - If the family on Google Fonts has use typo metrics not enabled and the family\n being checked has it enabled, the hhea and typo metrics should use the family\n on Google Fonts winAscent and winDescent values.\n\n - If the upms differ, the values must be scaled so the visual appearance is\n the same.\n\n [1] https://github.com/fonttools/fontbakery/issues/1162\n ", "result": "SKIP"}, {"description": "Check font follows the Google Fonts CJK vertical metric schema", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cjk_font", "status": "SKIP", "traceback": null}], "rationale": "\n CJK fonts have different vertical metrics when compared to Latin fonts.\n We follow the schema developed by dr Ken Lunde for Source Han Sans and\n the Noto CJK fonts.\n\n Our documentation includes further information:\n https://github.com/googlefonts/gf-docs/tree/main/Spec#cjk-vertical-metrics\n ", "result": "SKIP"}, {"description": "Check if the vertical metrics of a CJK family are similar to the same family hosted on Google Fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cjk_font, regular_remote_style", "status": "SKIP", "traceback": null}], "rationale": "\n Check CJK family has the same vertical metrics as the same family\n hosted on Google Fonts.\n ", "result": "SKIP"}, {"description": "Does the font contain less than 150 CJK characters?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_claiming_to_be_cjk_font", "status": "SKIP", "traceback": null}], "rationale": "\n Kana has 150 characters and it's the smallest CJK writing system.\n\n If a font contains less CJK glyphs than this writing system, we inform the\n user that some glyphs may be encoded incorrectly.\n ", "result": "SKIP"}, {"description": "Check variable font instances don't have duplicate names", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n This check's purpose is to detect duplicate named instances names in a\n given variable font.\n Repeating instance names may be the result of instances for several VF axes\n defined in `fvar`, but since currently only weight+italic tokens are allowed\n in instance names as per GF specs, they ended up repeating.\n Instead, only a base set of fonts for the most default representation of the\n family can be defined through instances in the `fvar` table, all other\n instances will have to be left to access through the `STAT` table.\n ", "result": "SKIP"}, {"description": "Ensure VFs do not contain the ital axis.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n The 'ital' axis is not supported yet in Google Chrome.\n\n For the time being, we need to ensure that VFs do not contain this axis.\n Once browser support is better, we can deprecate this check.\n\n For more info regarding browser support, see:\n https://arrowtype.github.io/vf-slnt-test/\n ", "result": "SKIP"}, {"description": "Ensure VFs with duplexed axes do not vary horizontal advance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Certain axes, such as grade (GRAD) or roundness (ROND), should not\n change any advanceWidth or kerning data across the font's design space.\n This is because altering the advance width of glyphs can cause text reflow.\n ", "result": "SKIP"}, {"description": "Validate METADATA.pb axes values are within gf_axisregistry bounds.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Each axis range in a METADATA.pb file must be registered, and within the bounds\n of the axis definition in the Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n ", "result": "SKIP"}, {"description": "Validate METADATA.pb axes tags are defined in gf_axisregistry.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Ensure all axes in a METADATA.pb file are registered in the\n Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n\n Why does Google Fonts have its own Axis Registry?\n\n We support a superset of the OpenType axis registry axis set, and use\n additional metadata for each axis. Axes present in a font file but not in this\n registry will not function via our API. No variable font is expected to\n support all of the axes here.\n\n Any font foundry or distributor library that offers variable fonts has a\n implicit, latent, de-facto axis registry, which can be extracted by scanning\n the library for axes' tags, labels, and min/def/max values. While in 2016\n Microsoft originally offered to include more axes in the OpenType 1.8\n specification (github.com/microsoft/OpenTypeDesignVariationAxisTags), as of\n August 2020, this effort has stalled. We hope more foundries and distributors\n will publish documents like this that make their axes explicit, to encourage\n of adoption of variable fonts throughout the industry, and provide source\n material for a future update to the OpenType specification's axis registry.\n ", "result": "SKIP"}, {"description": "Validate defaults on fvar table match registered fallback names in GFAxisRegistry.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check that axis defaults have a corresponding fallback name registered at the\n Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n\n This is necessary for the following reasons:\n\n To get ZIP files downloads on Google Fonts to be accurate \u2014 otherwise the\n chosen default font is not generated. The Newsreader family, for instance, has\n a default value on the 'opsz' axis of 16pt. If 16pt was not a registered\n fallback position, then the ZIP file would instead include another position\n as default (such as 14pt).\n\n For the Variable fonts to display the correct location on the specimen page.\n\n For VF with no weight axis to be displayed at all. For instance, Ballet, which\n has no weight axis, was not appearing in sandbox because default position on\n 'opsz' axis was 16pt, and it was not yet a registered fallback positon.\n ", "result": "SKIP"}, {"description": "Validate STAT particle names and values match the fallback names in GFAxisRegistry.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check that particle names and values on STAT table match the fallback names\n in each axis entry at the Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n ", "result": "SKIP"}, {"description": "Validate VF axes match the ones declared on METADATA.pb.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n All font variation axes present in the font files must be properly declared\n on METADATA.pb so that they can be served by the GFonts API.\n ", "result": "SKIP"}, {"description": "Ensure METADATA.pb does not use escaped strings.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n In some cases we've seen designer names and other fields with escaped strings\n in METADATA files (such as \"Juli\\303\\241n\").\n\n Nowadays the strings can be full unicode strings (such as \"Juli\u00e1n\") and do\n not need escaping.\n\n Escaping quotes or double-quotes is fine, though.\n ", "result": "PASS"}, {"description": "METADATA.pb: Designers are listed correctly on the Google Fonts catalog?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Designer Luke Prowse still does not have an avatar image. Please provide one. [code: missing-avatar]", "status": "FAIL", "traceback": null}], "rationale": "\n Google Fonts has a catalog of designers.\n\n This check ensures that the online entries of the catalog can be found based\n on the designer names listed on the METADATA.pb file.\n\n It also validates the URLs and file formats are all correctly set.\n ", "result": "FAIL"}, {"description": "Ensure variable fonts include an avar table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Most variable fonts should include an avar table to correctly define\n axes progression rates.\n\n For example, a weight axis from 0% to 100% doesn't map directly to 100 to 1000,\n because a 10% progression from 0% may be too much to define the 200,\n while 90% may be too little to define the 900.\n\n If the progression rates of axes is linear, this check can be ignored.\n Fontmake will also skip adding an avar table if the progression rates\n are linear. However, we still recommend designers visually proof each\n instance is at the expected weight, width etc.\n ", "result": "SKIP"}, {"description": "On a family update, the DESCRIPTION.en_us.html file should ideally also be updated.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The DESCRIPTION.en_us.html file in this family has not changed in comparison to the latest font release on the google/fonts github repo.\nPlease consider mentioning note-worthy improvements made to the family recently. [code: description-not-updated]", "status": "WARN", "traceback": null}], "rationale": "\n We want to ensure that any significant changes to the font family are\n properly mentioned in the DESCRIPTION file.\n\n In general, it means that the contents of the DESCRIPTION.en_us.html file\n will typically change if when font files are updated. Please treat this check\n as a reminder to do so whenever appropriate!\n ", "result": "WARN"}, {"description": "Check small caps glyphs are available.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Ensure small caps glyphs are available if\n a font declares smcp or c2sc OT features.\n ", "result": "PASS"}, {"description": "Ensure Stylistic Sets have description.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Stylistic sets should provide description text. Programs such as InDesign,\n TextEdit and Inkscape use that info to display to the users so that they know\n what a given stylistic set offers.\n ", "result": "PASS"}, {"description": "OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n All fonts on the Google Fonts collection should have OS/2.fsSelection bit 7\n (USE_TYPO_METRICS) set. This requirement is part of the vertical metrics scheme\n established as a Google Fonts policy aiming at a common ground supported by\n all major font rendering environments.\n\n For more details, read:\n https://github.com/googlefonts/gf-docs/blob/main/VerticalMetrics/README.md\n\n Below is the portion of that document that is most relevant to this check:\n\n Use_Typo_Metrics must be enabled. This will force MS Applications to use the\n OS/2 Typo values instead of the Win values. By doing this, we can freely set\n the Win values to avoid clipping and control the line height with the typo\n values. It has the added benefit of future line height compatibility. When\n a new script is added, we simply change the Win values to the new yMin\n and yMax, without needing to worry if the line height have changed.\n ", "result": "PASS", "severity": 10}, {"description": "Ensure fonts have ScriptLangTags declared on the 'meta' table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This font file does not have a 'meta' table. [code: lacks-meta-table]", "status": "WARN", "traceback": null}], "rationale": "\n The OpenType 'meta' table originated at Apple. Microsoft added it to OT with\n just two DataMap records:\n\n - dlng: comma-separated ScriptLangTags that indicate which scripts,\n or languages and scripts, with possible variants, the font is designed for.\n\n - slng: comma-separated ScriptLangTags that indicate which scripts,\n or languages and scripts, with possible variants, the font supports.\n\n\n The slng structure is intended to describe which languages and scripts the\n font overall supports. For example, a Traditional Chinese font that also\n contains Latin characters, can indicate Hant,Latn, showing that it supports\n Hant, the Traditional Chinese variant of the Hani script, and it also\n supports the Latn script.\n\n The dlng structure is far more interesting. A font may contain various glyphs,\n but only a particular subset of the glyphs may be truly \"leading\" in the design,\n while other glyphs may have been included for technical reasons. Such a\n Traditional Chinese font could only list Hant there, showing that it\u2019s designed\n for Traditional Chinese, but the font would omit Latn, because the developers\n don\u2019t think the font is really recommended for purely Latin-script use.\n\n The tags used in the structures can comprise just script, or also language\n and script. For example, if a font has Bulgarian Cyrillic alternates in the\n locl feature for the cyrl BGR OT languagesystem, it could also indicate in\n dlng explicitly that it supports bul-Cyrl. (Note that the scripts and languages\n in meta use the ISO language and script codes, not the OpenType ones).\n\n This check ensures that the font has the meta table containing the\n slng and dlng structures.\n\n All families in the Google Fonts collection should contain the 'meta' table.\n Windows 10 already uses it when deciding on which fonts to fall back to.\n The Google Fonts API and also other environments could use the data for\n smarter filtering. Most importantly, those entries should be added\n to the Noto fonts.\n\n In the font making process, some environments store this data in external\n files already. But the meta table provides a convenient way to store this\n inside the font file, so some tools may add the data, and unrelated tools\n may read this data. This makes the solution much more portable and universal.\n ", "result": "WARN", "severity": 3}, {"description": "Ensure fonts do not contain any pre-production tables.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Tables such as `Debg` are useful in the pre-production stages of font\n development, but add unnecessary bloat to a production font and should\n be removed before release.\n ", "result": "PASS", "severity": 6}, {"description": "Check font family directory name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Directory name is \"rubikbrokenfax\", as expected.", "status": "PASS", "traceback": null}], "rationale": "\n We want the directory name of a font family to be predictable and directly\n derived from the family name, all lowercased and removing spaces.\n ", "result": "PASS"}, {"description": "Check font can render its own name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font can successfully render its own name (Rubik Broken Fax)", "status": "PASS", "traceback": null}], "rationale": "\n A base expectation is that a font family's regular/default (400 roman) style\n can render its 'menu name' (nameID 1) in itself.\n ", "result": "PASS"}, {"description": "Check samples can be rendered.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK.", "status": "PASS", "traceback": null}], "rationale": "\n In order to prevent tofu from being seen on fonts.google.com, this check\n verifies that all samples specified by METADATA.pb can be properly\n rendered by the font.\n ", "result": "PASS"}, {"description": "Check if category on METADATA.pb matches what can be inferred from the family name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK.", "status": "PASS", "traceback": null}], "rationale": "\n Sometimes the font familyname contains words that hint at which is the most\n likely correct category to be declared on METADATA.pb\n ", "result": "PASS"}, {"description": "Check font has the expected color font tables.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks Good!", "status": "PASS", "traceback": null}], "rationale": "\n COLR v0 fonts are widely supported in most browsers so they do not require\n an SVG color table. However, some environments (e.g. Safari, Adobe apps)\n do not currently support COLR v1 so we need to add an SVG table to these fonts,\n except in the case of variable fonts, since SVG does not support\n OpenType Variations.\n\n To automatically generate compatible SVG/COLR tables,\n run the maximum_color tool in nanoemoji:\n https://github.com/googlefonts/nanoemoji\n ", "result": "PASS"}, {"description": "Color layers should have a minimum brightness", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Layers of a COLRv0 font should not be too dark or too bright. When layer colors\n are set explicitly, they can't be changed and they may turn out illegible\n against dark or bright backgrounds.\n\n While traditional color-less fonts can be colored in design apps or CSS, a\n black color definition in a COLRv0 font actually means that that layer will be\n rendered in black regardless of the background color. This leads to text\n becoming invisible against a dark background, for instance when using a dark\n theme in a web browser or operating system.\n\n This check ensures that layer colors are at least 10% bright and at most 90%\n bright, when not already set to the current color (0xFFFF).\n ", "result": "PASS"}, {"description": "Put an empty glyph on GID 1 right after the .notdef glyph for COLRv0 fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n A rendering bug in Windows 10 paints whichever glyph is on GID 1 on top of\n some glyphs, colored or not. This only occurs for COLR version 0 fonts.\n\n Having a glyph with no contours on GID 1 is a practical workaround for that.\n\n See https://github.com/googlefonts/gftools/issues/609\n ", "result": "PASS"}, {"description": "Noto fonts must have an ARTICLE.en_us.html file", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_noto", "status": "SKIP", "traceback": null}], "rationale": "\n Noto fonts are displayed in a different way on the fonts.google.com\n web site, and so must also contain an article about them.\n ", "result": "SKIP"}, {"description": "At least one designer is declared in METADATA.pb", "experimental": "Since 2023/Oct/12", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font designer field is not empty.", "status": "PASS", "traceback": null}], "rationale": "\n Any font published on Google Fonts must credit one or several authors,\n foundry and/or individuals.\n\n Ideally, all authors listed in the upstream repository's AUTHORS.txt should\n be mentioned in the designer field.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"FAIL": 4, "INFO": 7, "PASS": 97, "SKIP": 27, "WARN": 5}}, {"checks": [{"description": "Checking all files are in the same directory.", "key": ["", "", []], "logs": [{"message": "All files are in the same directory.", "status": "PASS", "traceback": null}], "rationale": "\n If the set of font files passed in the command line is not all in the\n same directory, then we warn the user since the tool will interpret the\n set of files as belonging to a single family (and it is unlikely that\n the user would store the files from a single family spreaded\n in several separate directories).\n ", "result": "PASS"}, {"description": "Each font in a family must have the same set of vertical metrics values.", "key": ["", "", []], "logs": [{"message": "Vertical metrics are the same across the family.", "status": "PASS", "traceback": null}], "rationale": "\n We want all fonts within a family to have the same vertical metrics so\n their line spacing is consistent across the family.\n ", "result": "PASS"}, {"description": "Name table records must not have trailing spaces.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No trailing spaces on name table entries.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking OS/2 usWinAscent & usWinDescent.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 usWinAscent & usWinDescent values look good!", "status": "PASS", "traceback": null}], "rationale": "\n A font's winAscent and winDescent values should be greater than or equal to\n the head table's yMax, abs(yMin) values. If they are less than these values,\n clipping can occur on Windows platforms\n (https://github.com/RedHatBrand/Overpass/issues/33).\n\n If the font includes tall/deep writing systems such as Arabic or Devanagari,\n the winAscent and winDescent can be greater than the yMax and absolute yMin\n values to accommodate vowel marks.\n\n When the 'win' Metrics are significantly greater than the UPM, the linespacing\n can appear too loose. To counteract this, enabling the OS/2 fsSelection\n bit 7 (Use_Typo_Metrics), will force Windows to use the OS/2 'typo' values\n instead. This means the font developer can control the linespacing with\n the 'typo' values, whilst avoiding clipping by setting the 'win' values to\n values greater than the yMax and absolute yMin.\n ", "result": "PASS"}, {"description": "Checking OS/2 Metrics match hhea Metrics.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2.sTypoAscender/Descender values match hhea.ascent/descent.", "status": "PASS", "traceback": null}], "rationale": "\n OS/2 and hhea vertical metric values should match. This will produce the\n same linespacing on Mac, GNU+Linux and Windows.\n\n - Mac OS X uses the hhea values.\n - Windows uses OS/2 or Win, depending on the OS or fsSelection bit value.\n\n When OS/2 and hhea vertical metrics match, the same linespacing results on\n macOS, GNU+Linux and Windows. Note that fixing this issue in a previously\n released font may cause reflow in user documents and unhappy users.\n ", "result": "PASS"}, {"description": "Checking with ots-sanitize.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "ots-sanitize passed this file", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Do we have the latest version of FontBakery installed?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "FontBakery is up-to-date.", "status": "PASS", "traceback": null}], "rationale": "\n Running old versions of FontBakery can lead to a poor report which may\n include false WARNs and FAILs due do bugs, as well as outdated\n quality assurance criteria.\n\n Older versions will also not report problems that are detected by new checks\n added to the tool in more recent updates.\n ", "result": "PASS"}, {"description": "Font contains '.notdef' as its first glyph?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n The OpenType specification v1.8.2 recommends that the first glyph is the\n '.notdef' glyph without a codepoint assigned and with a drawing:\n\n The .notdef glyph is very important for providing the user feedback\n that a glyph is not found in the font. This glyph should not be left\n without an outline as the user will only see what looks like a space\n if a glyph is missing and not be aware of the active font\u2019s limitation.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/recom#glyph-0-the-notdef-glyph\n\n Pre-v1.8, it was recommended that fonts should also contain 'space', 'CR'\n and '.null' glyphs. This might have been relevant for MacOS 9 applications.\n ", "result": "PASS"}, {"description": "Font contains glyphs for whitespace characters?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font contains glyphs for whitespace characters.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font has **proper** whitespace glyph names?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has **AGL recommended** names for whitespace glyphs.", "status": "PASS", "traceback": null}], "rationale": "\n This check enforces adherence to recommended whitespace\n (codepoints 0020 and 00A0) glyph names according to the Adobe Glyph List.\n ", "result": "PASS"}, {"description": "Whitespace glyphs have ink?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There is no whitespace glyph with ink.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check that legacy accents aren't used in composite glyphs. (derived from com.google.fonts/check/legacy_accents)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Legacy accents should not be used in accented glyphs. The use of legacy\n accents in accented glyphs breaks the mark to mark combining feature that\n allows a font to stack diacritics over one glyph. Use combining marks\n instead as a component in composite glyphs.\n\n Legacy accents should not have anchors and should have non-zero width.\n They are often used independently of a letter, either as a placeholder\n for an expected combined mark+letter combination in MacOS, or separately.\n For instance, U+00B4 (ACUTE ACCENT) is often mistakenly used as an apostrophe,\n U+0060 (GRAVE ACCENT) is used in Markdown to notify code blocks,\n and ^ is used as an exponential operator in maths.\n ", "result": "PASS"}, {"description": "Check that Arabic spacing symbols U+FBB2\u2013FBC1 aren't classified as marks.", "experimental": "Since 2023/Oct/20", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Unicode has a few spacing symbols representing Arabic dots and other marks,\n but they are purposefully not classified as marks.\n\n Many fonts mistakenly classify them as marks, making them unsuitable\n for their original purpose as stand-alone symbols to used in pedagogical\n contexts discussing Arabic consonantal marks.\n ", "result": "PASS", "severity": 4}, {"description": "Check that glyph for U+0675 ARABIC LETTER HIGH HAMZA is not a mark.", "experimental": "Since 2023/Oct/20", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This check will only run on fonts that have both glyphs U+0621 and U+0675 [code: glyphs-missing]", "status": "SKIP", "traceback": null}], "rationale": "\n Many fonts incorrectly treat ARABIC LETTER HIGH HAMZA (U+0675) as a variant of\n ARABIC HAMZA ABOVE (U+0654) and make it a combining mark of the same size.\n\n But U+0675 is a base letter and should be a variant of ARABIC LETTER HAMZA\n (U+0621) but raised slightly above baseline.\n\n Not doing so effectively makes the font useless for Jawi and\n possibly Kazakh as well.\n ", "result": "SKIP", "severity": 4}, {"description": "Font contains all required tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This font contains the following optional tables:\n\n\t- loca\n\n\t- prep\n\n\t- GPOS\n\n\t- GSUB\n\n\t- gasp [code: optional-tables]", "status": "INFO", "traceback": null}, {"message": "Font contains all required tables.", "status": "PASS", "traceback": null}], "rationale": "\n According to the OpenType spec\n https://docs.microsoft.com/en-us/typography/opentype/spec/otff#required-tables\n\n Whether TrueType or CFF outlines are used in an OpenType font, the following\n tables are required for the font to function correctly:\n\n - cmap (Character to glyph mapping)\u23ce\n - head (Font header)\u23ce\n - hhea (Horizontal header)\u23ce\n - hmtx (Horizontal metrics)\u23ce\n - maxp (Maximum profile)\u23ce\n - name (Naming table)\u23ce\n - OS/2 (OS/2 and Windows specific metrics)\u23ce\n - post (PostScript information)\n\n The spec also documents that variable fonts require the following table:\n\n - STAT (Style attributes)\n\n Depending on the typeface and coverage of a font, certain tables are\n recommended for optimum quality.\n\n For example:\u23ce\n - the performance of a non-linear font is improved if the VDMX, LTSH,\n and hdmx tables are present.\u23ce\n - Non-monospaced Latin fonts should have a kern table.\u23ce\n - A gasp table is necessary if a designer wants to influence the sizes\n at which grayscaling is used under Windows. Etc.\n ", "result": "INFO"}, {"description": "Are there unwanted tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There are no unwanted tables.", "status": "PASS", "traceback": null}], "rationale": "\n Some font editors store source data in their own SFNT tables, and these\n can sometimes sneak into final release files, which should only have\n OpenType spec tables.\n ", "result": "PASS"}, {"description": "Check correctness of STAT table strings", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n On the STAT table, the \"Italic\" keyword must not be used on AxisValues\n for variation axes other than 'ital'.\n ", "result": "SKIP"}, {"description": "Glyph names are all valid?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyph names are all valid.", "status": "PASS", "traceback": null}], "rationale": "\n Microsoft's recommendations for OpenType Fonts states the following:\n\n 'NOTE: The PostScript glyph name must be no longer than 31 characters,\n include only uppercase or lowercase English letters, European digits,\n the period or the underscore, i.e. from the set [A-Za-z0-9_.] and\n should start with a letter, except the special glyph name \".notdef\"\n which starts with a period.'\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/recom#post-table\n\n\n In practice, though, particularly in modern environments, glyph names\n can be as long as 63 characters.\n\n According to the \"Adobe Glyph List Specification\" available at:\n\n https://github.com/adobe-type-tools/agl-specification\n ", "result": "PASS"}, {"description": "Font contains unique glyph names?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyph names are all unique.", "status": "PASS", "traceback": null}], "rationale": "\n Duplicate glyph names prevent font installation on Mac OS X.\n ", "result": "PASS"}, {"description": "List all superfamily filepaths", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax [code: family-path]", "status": "INFO", "traceback": null}], "rationale": "\n This is a merely informative check that lists all sibling families\n detected by fontbakery.\n\n Only the fontfiles in these directories will be considered in\n superfamily-level checks.\n ", "result": "INFO"}, {"description": "Each font in set of sibling families must have the same set of vertical metrics values.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Sibling families were not detected.", "status": "SKIP", "traceback": null}], "rationale": "\n We may want all fonts within a super-family (all sibling families) to have\n the same vertical metrics so their line spacing is consistent\n across the super-family.\n\n This is an experimental extended version of\n com.google.fonts/check/family/vertical_metrics and for now it will only\n result in WARNs.\n ", "result": "SKIP"}, {"description": "Ensure indic fonts have the Indian Rupee Sign glyph.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_indic_font", "status": "SKIP", "traceback": null}], "rationale": "\n Per Bureau of Indian Standards every font supporting one of the\n official Indian languages needs to include Unicode Character\n \u201c\u20b9\u201d (U+20B9) Indian Rupee Sign.\n ", "result": "SKIP"}, {"description": "Check font contains no unreachable glyphs", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font did not contain any unreachable glyphs", "status": "PASS", "traceback": null}], "rationale": "\n Glyphs are either accessible directly through Unicode codepoints or through\n substitution rules.\n\n In Color Fonts, glyphs are also referenced by the COLR table.\n\n Any glyphs not accessible by either of these means\n are redundant and serve only to increase the font's file size.\n ", "result": "PASS"}, {"description": "Check if each glyph has the recommended amount of contours.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.\n\nThe following glyphs do not have the recommended number of contours:\n\n\t- Glyph name: exclam\tContours detected: 50\tExpected: 2\n\n\t- Glyph name: quotedbl\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: numbersign\tContours detected: 24\tExpected: 2\n\n\t- Glyph name: dollar\tContours detected: 17\tExpected: 1, 3 or 5\n\n\t- Glyph name: percent\tContours detected: 50\tExpected: 5\n\n\t- Glyph name: ampersand\tContours detected: 19\tExpected: 1, 2 or 3\n\n\t- Glyph name: quotesingle\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: parenleft\tContours detected: 25\tExpected: 1\n\n\t- Glyph name: parenright\tContours detected: 24\tExpected: 1\n\n\t- Glyph name: asterisk\tContours detected: 11\tExpected: 1 or 4\n\n\t- Glyph name: plus\tContours detected: 29\tExpected: 1\n\n\t- Glyph name: comma\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: hyphen\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: period\tContours detected: 18\tExpected: 1\n\n\t- Glyph name: slash\tContours detected: 38\tExpected: 1\n\n\t- Glyph name: zero\tContours detected: 83\tExpected: 2 or 3\n\n\t- Glyph name: one\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: two\tContours detected: 18\tExpected: 1\n\n\t- Glyph name: three\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: four\tContours detected: 32\tExpected: 1 or 2\n\n\t- Glyph name: five\tContours detected: 30\tExpected: 1\n\n\t- Glyph name: six\tContours detected: 59\tExpected: 1 or 2\n\n\t- Glyph name: seven\tContours detected: 36\tExpected: 1\n\n\t- Glyph name: eight\tContours detected: 21\tExpected: 3\n\n\t- Glyph name: nine\tContours detected: 19\tExpected: 1 or 2\n\n\t- Glyph name: colon\tContours detected: 14\tExpected: 2\n\n\t- Glyph name: semicolon\tContours detected: 31\tExpected: 2\n\n\t- Glyph name: less\tContours detected: 37\tExpected: 1\n\n\t- Glyph name: equal\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: greater\tContours detected: 78\tExpected: 1\n\n\t- Glyph name: question\tContours detected: 30\tExpected: 2\n\n\t- Glyph name: at\tContours detected: 48\tExpected: 2\n\n\t- Glyph name: A\tContours detected: 93\tExpected: 2\n\n\t- Glyph name: B\tContours detected: 126\tExpected: 2 or 3\n\n\t- Glyph name: C\tContours detected: 13\tExpected: 1\n\n\t- Glyph name: D\tContours detected: 18\tExpected: 2\n\n\t- Glyph name: E\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: F\tContours detected: 13\tExpected: 1\n\n\t- Glyph name: G\tContours detected: 24\tExpected: 1\n\n\t- Glyph name: H\tContours detected: 32\tExpected: 1\n\n\t- Glyph name: I\tContours detected: 31\tExpected: 1\n\n\t- Glyph name: J\tContours detected: 11\tExpected: 1\n\n\t- Glyph name: K\tContours detected: 31\tExpected: 1 or 2\n\n\t- Glyph name: L\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: M\tContours detected: 12\tExpected: 1\n\n\t- Glyph name: N\tContours detected: 11\tExpected: 1\n\n\t- Glyph name: O\tContours detected: 111\tExpected: 2\n\n\t- Glyph name: P\tContours detected: 10\tExpected: 1 or 2\n\n\t- Glyph name: Q\tContours detected: 24\tExpected: 2\n\n\t- Glyph name: R\tContours detected: 80\tExpected: 1 or 2\n\n\t- Glyph name: S\tContours detected: 53\tExpected: 1\n\n\t- Glyph name: T\tContours detected: 33\tExpected: 1\n\n\t- Glyph name: U\tContours detected: 41\tExpected: 1\n\n\t- Glyph name: V\tContours detected: 68\tExpected: 1\n\n\t- Glyph name: W\tContours detected: 50\tExpected: 1 or 2\n\n\t- Glyph name: X\tContours detected: 28\tExpected: 1\n\n\t- Glyph name: Y\tContours detected: 15\tExpected: 1\n\n\t- Glyph name: Z\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: bracketleft\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: backslash\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: bracketright\tContours detected: 29\tExpected: 1\n\n\t- Glyph name: asciicircum\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: underscore\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: grave\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: a\tContours detected: 20\tExpected: 2\n\n\t- Glyph name: b\tContours detected: 78\tExpected: 2\n\n\t- Glyph name: c\tContours detected: 31\tExpected: 1\n\n\t- Glyph name: d\tContours detected: 48\tExpected: 2\n\n\t- Glyph name: e\tContours detected: 21\tExpected: 2\n\n\t- Glyph name: f\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: g\tContours detected: 49\tExpected: 2 or 3\n\n\t- Glyph name: h\tContours detected: 63\tExpected: 1\n\n\t- Glyph name: i\tContours detected: 31\tExpected: 2\n\n\t- Glyph name: j\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: k\tContours detected: 115\tExpected: 1 or 2\n\n\t- Glyph name: l\tContours detected: 51\tExpected: 1\n\n\t- Glyph name: m\tContours detected: 24\tExpected: 1\n\n\t- Glyph name: n\tContours detected: 30\tExpected: 1\n\n\t- Glyph name: o\tContours detected: 95\tExpected: 2\n\n\t- Glyph name: p\tContours detected: 37\tExpected: 2\n\n\t- Glyph name: q\tContours detected: 30\tExpected: 2\n\n\t- Glyph name: r\tContours detected: 66\tExpected: 1\n\n\t- Glyph name: s\tContours detected: 18\tExpected: 1\n\n\t- Glyph name: t\tContours detected: 12\tExpected: 1\n\n\t- Glyph name: u\tContours detected: 46\tExpected: 1\n\n\t- Glyph name: v\tContours detected: 16\tExpected: 1\n\n\t- Glyph name: w\tContours detected: 63\tExpected: 1\n\n\t- Glyph name: x\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: y\tContours detected: 24\tExpected: 1\n\n\t- Glyph name: z\tContours detected: 26\tExpected: 1\n\n\t- Glyph name: braceleft\tContours detected: 72\tExpected: 1\n\n\t- Glyph name: bar\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: braceright\tContours detected: 21\tExpected: 1\n\n\t- Glyph name: asciitilde\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: exclamdown\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: cent\tContours detected: 11\tExpected: 1 or 2\n\n\t- Glyph name: sterling\tContours detected: 20\tExpected: 1 or 2\n\n\t- Glyph name: currency\tContours detected: 23\tExpected: 2\n\n\t- Glyph name: yen\tContours detected: 30\tExpected: 1 or 2\n\n\t- Glyph name: brokenbar\tContours detected: 28\tExpected: 2\n\n\t- Glyph name: section\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: dieresis\tContours detected: 13\tExpected: 2\n\n\t- Glyph name: ordfeminine\tContours detected: 13\tExpected: 2 or 3\n\n\t- Glyph name: guillemotleft\tContours detected: 25\tExpected: 2\n\n\t- Glyph name: logicalnot\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: registered\tContours detected: 30\tExpected: 3 or 4\n\n\t- Glyph name: degree\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: plusminus\tContours detected: 7\tExpected: 1 or 2\n\n\t- Glyph name: uni00B2\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: acute\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni00B5\tContours detected: 81\tExpected: 1\n\n\t- Glyph name: paragraph\tContours detected: 14\tExpected: 1, 2 or 3\n\n\t- Glyph name: periodcentered\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: cedilla\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: uni00B9\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: ordmasculine\tContours detected: 17\tExpected: 2 or 3\n\n\t- Glyph name: guillemotright\tContours detected: 52\tExpected: 2\n\n\t- Glyph name: onequarter\tContours detected: 59\tExpected: 3 or 4\n\n\t- Glyph name: onehalf\tContours detected: 48\tExpected: 3\n\n\t- Glyph name: threequarters\tContours detected: 46\tExpected: 3 or 4\n\n\t- Glyph name: questiondown\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: Agrave\tContours detected: 95\tExpected: 3\n\n\t- Glyph name: Aacute\tContours detected: 95\tExpected: 3\n\n\t- Glyph name: Acircumflex\tContours detected: 95\tExpected: 3\n\n\t- Glyph name: Atilde\tContours detected: 98\tExpected: 3\n\n\t- Glyph name: Adieresis\tContours detected: 120\tExpected: 4\n\n\t- Glyph name: Aring\tContours detected: 98\tExpected: 3 or 4\n\n\t- Glyph name: AE\tContours detected: 44\tExpected: 2\n\n\t- Glyph name: Ccedilla\tContours detected: 14\tExpected: 1 or 2\n\n\t- Glyph name: Egrave\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: Eacute\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: Ecircumflex\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: Edieresis\tContours detected: 36\tExpected: 3\n\n\t- Glyph name: Igrave\tContours detected: 33\tExpected: 2\n\n\t- Glyph name: Iacute\tContours detected: 33\tExpected: 2\n\n\t- Glyph name: Icircumflex\tContours detected: 33\tExpected: 2\n\n\t- Glyph name: Idieresis\tContours detected: 58\tExpected: 3\n\n\t- Glyph name: Eth\tContours detected: 29\tExpected: 2\n\n\t- Glyph name: Ntilde\tContours detected: 16\tExpected: 2\n\n\t- Glyph name: Ograve\tContours detected: 113\tExpected: 3\n\n\t- Glyph name: Oacute\tContours detected: 113\tExpected: 3\n\n\t- Glyph name: Ocircumflex\tContours detected: 113\tExpected: 3\n\n\t- Glyph name: Otilde\tContours detected: 116\tExpected: 3\n\n\t- Glyph name: Odieresis\tContours detected: 138\tExpected: 4\n\n\t- Glyph name: multiply\tContours detected: 45\tExpected: 1\n\n\t- Glyph name: Oslash\tContours detected: 28\tExpected: 2 or 3\n\n\t- Glyph name: Ugrave\tContours detected: 43\tExpected: 2\n\n\t- Glyph name: Uacute\tContours detected: 43\tExpected: 2\n\n\t- Glyph name: Ucircumflex\tContours detected: 43\tExpected: 2\n\n\t- Glyph name: Udieresis\tContours detected: 68\tExpected: 3\n\n\t- Glyph name: Yacute\tContours detected: 17\tExpected: 2\n\n\t- Glyph name: Thorn\tContours detected: 124\tExpected: 1 or 2\n\n\t- Glyph name: germandbls\tContours detected: 37\tExpected: 1\n\n\t- Glyph name: agrave\tContours detected: 22\tExpected: 3\n\n\t- Glyph name: aacute\tContours detected: 23\tExpected: 3\n\n\t- Glyph name: acircumflex\tContours detected: 32\tExpected: 3\n\n\t- Glyph name: atilde\tContours detected: 23\tExpected: 3\n\n\t- Glyph name: adieresis\tContours detected: 33\tExpected: 4\n\n\t- Glyph name: aring\tContours detected: 22\tExpected: 4\n\n\t- Glyph name: ae\tContours detected: 27\tExpected: 3\n\n\t- Glyph name: ccedilla\tContours detected: 9\tExpected: 1 or 2\n\n\t- Glyph name: egrave\tContours detected: 23\tExpected: 3\n\n\t- Glyph name: eacute\tContours detected: 24\tExpected: 3\n\n\t- Glyph name: ecircumflex\tContours detected: 33\tExpected: 3\n\n\t- Glyph name: edieresis\tContours detected: 34\tExpected: 4\n\n\t- Glyph name: igrave\tContours detected: 36\tExpected: 2\n\n\t- Glyph name: iacute\tContours detected: 37\tExpected: 2\n\n\t- Glyph name: icircumflex\tContours detected: 46\tExpected: 2\n\n\t- Glyph name: idieresis\tContours detected: 47\tExpected: 3\n\n\t- Glyph name: eth\tContours detected: 67\tExpected: 2\n\n\t- Glyph name: ntilde\tContours detected: 33\tExpected: 2\n\n\t- Glyph name: ograve\tContours detected: 97\tExpected: 3\n\n\t- Glyph name: oacute\tContours detected: 98\tExpected: 3\n\n\t- Glyph name: ocircumflex\tContours detected: 107\tExpected: 3\n\n\t- Glyph name: otilde\tContours detected: 98\tExpected: 3\n\n\t- Glyph name: odieresis\tContours detected: 108\tExpected: 4\n\n\t- Glyph name: divide\tContours detected: 35\tExpected: 3\n\n\t- Glyph name: oslash\tContours detected: 46\tExpected: 3\n\n\t- Glyph name: ugrave\tContours detected: 48\tExpected: 2\n\n\t- Glyph name: uacute\tContours detected: 49\tExpected: 2\n\n\t- Glyph name: ucircumflex\tContours detected: 58\tExpected: 2\n\n\t- Glyph name: udieresis\tContours detected: 59\tExpected: 3\n\n\t- Glyph name: yacute\tContours detected: 27\tExpected: 2\n\n\t- Glyph name: thorn\tContours detected: 101\tExpected: 2\n\n\t- Glyph name: ydieresis\tContours detected: 37\tExpected: 3\n\n\t- Glyph name: Amacron\tContours detected: 96\tExpected: 3\n\n\t- Glyph name: amacron\tContours detected: 21\tExpected: 3\n\n\t- Glyph name: Abreve\tContours detected: 113\tExpected: 3\n\n\t- Glyph name: abreve\tContours detected: 47\tExpected: 3\n\n\t- Glyph name: Aogonek\tContours detected: 22\tExpected: 2 or 3\n\n\t- Glyph name: aogonek\tContours detected: 42\tExpected: 2\n\n\t- Glyph name: Cacute\tContours detected: 15\tExpected: 2\n\n\t- Glyph name: cacute\tContours detected: 34\tExpected: 2\n\n\t- Glyph name: Ccircumflex\tContours detected: 15\tExpected: 2\n\n\t- Glyph name: ccircumflex\tContours detected: 43\tExpected: 2\n\n\t- Glyph name: Cdotaccent\tContours detected: 27\tExpected: 2\n\n\t- Glyph name: cdotaccent\tContours detected: 41\tExpected: 2\n\n\t- Glyph name: Ccaron\tContours detected: 26\tExpected: 2\n\n\t- Glyph name: ccaron\tContours detected: 40\tExpected: 2\n\n\t- Glyph name: Dcaron\tContours detected: 31\tExpected: 3\n\n\t- Glyph name: dcaron\tContours detected: 52\tExpected: 3\n\n\t- Glyph name: Dcroat\tContours detected: 60\tExpected: 2\n\n\t- Glyph name: dcroat\tContours detected: 61\tExpected: 2\n\n\t- Glyph name: Emacron\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: emacron\tContours detected: 22\tExpected: 3\n\n\t- Glyph name: Ebreve\tContours detected: 29\tExpected: 2\n\n\t- Glyph name: ebreve\tContours detected: 48\tExpected: 3\n\n\t- Glyph name: Edotaccent\tContours detected: 23\tExpected: 2\n\n\t- Glyph name: edotaccent\tContours detected: 31\tExpected: 3\n\n\t- Glyph name: eogonek\tContours detected: 63\tExpected: 2\n\n\t- Glyph name: Ecaron\tContours detected: 22\tExpected: 2\n\n\t- Glyph name: ecaron\tContours detected: 30\tExpected: 3\n\n\t- Glyph name: Gcircumflex\tContours detected: 26\tExpected: 2\n\n\t- Glyph name: gcircumflex\tContours detected: 61\tExpected: 3 or 4\n\n\t- Glyph name: Gbreve\tContours detected: 44\tExpected: 2\n\n\t- Glyph name: gbreve\tContours detected: 76\tExpected: 3 or 4\n\n\t- Glyph name: Gdotaccent\tContours detected: 38\tExpected: 2\n\n\t- Glyph name: gdotaccent\tContours detected: 59\tExpected: 3 or 4\n\n\t- Glyph name: uni0122\tContours detected: 27\tExpected: 2\n\n\t- Glyph name: uni0123\tContours detected: 56\tExpected: 3 or 4\n\n\t- Glyph name: Hcircumflex\tContours detected: 34\tExpected: 2\n\n\t- Glyph name: hcircumflex\tContours detected: 75\tExpected: 2\n\n\t- Glyph name: Hbar\tContours detected: 14\tExpected: 2\n\n\t- Glyph name: hbar\tContours detected: 42\tExpected: 1\n\n\t- Glyph name: Itilde\tContours detected: 36\tExpected: 2\n\n\t- Glyph name: itilde\tContours detected: 37\tExpected: 2\n\n\t- Glyph name: Imacron\tContours detected: 34\tExpected: 2\n\n\t- Glyph name: imacron\tContours detected: 35\tExpected: 2\n\n\t- Glyph name: Ibreve\tContours detected: 51\tExpected: 2\n\n\t- Glyph name: ibreve\tContours detected: 61\tExpected: 2\n\n\t- Glyph name: Iogonek\tContours detected: 80\tExpected: 1 or 2\n\n\t- Glyph name: iogonek\tContours detected: 60\tExpected: 2 or 3\n\n\t- Glyph name: Idotaccent\tContours detected: 45\tExpected: 2\n\n\t- Glyph name: dotlessi\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: IJ\tContours detected: 111\tExpected: 1 or 2\n\n\t- Glyph name: ij\tContours detected: 40\tExpected: 3 or 4\n\n\t- Glyph name: Jcircumflex\tContours detected: 13\tExpected: 2\n\n\t- Glyph name: jcircumflex\tContours detected: 48\tExpected: 2\n\n\t- Glyph name: uni0136\tContours detected: 34\tExpected: 2 or 3\n\n\t- Glyph name: uni0137\tContours detected: 139\tExpected: 2 or 3\n\n\t- Glyph name: kgreenlandic\tContours detected: 14\tExpected: 1 or 2\n\n\t- Glyph name: Lacute\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: lacute\tContours detected: 54\tExpected: 2\n\n\t- Glyph name: uni013B\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: uni013C\tContours detected: 75\tExpected: 2\n\n\t- Glyph name: Lcaron\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: lcaron\tContours detected: 55\tExpected: 2\n\n\t- Glyph name: Ldot\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: ldot\tContours detected: 64\tExpected: 2\n\n\t- Glyph name: Lslash\tContours detected: 77\tExpected: 1\n\n\t- Glyph name: lslash\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: Nacute\tContours detected: 13\tExpected: 2\n\n\t- Glyph name: nacute\tContours detected: 33\tExpected: 2\n\n\t- Glyph name: uni0145\tContours detected: 14\tExpected: 2\n\n\t- Glyph name: uni0146\tContours detected: 54\tExpected: 2\n\n\t- Glyph name: Ncaron\tContours detected: 24\tExpected: 2\n\n\t- Glyph name: ncaron\tContours detected: 39\tExpected: 2\n\n\t- Glyph name: napostrophe\tContours detected: 42\tExpected: 2\n\n\t- Glyph name: Eng\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: eng\tContours detected: 125\tExpected: 1\n\n\t- Glyph name: Omacron\tContours detected: 114\tExpected: 3\n\n\t- Glyph name: omacron\tContours detected: 96\tExpected: 3\n\n\t- Glyph name: Obreve\tContours detected: 131\tExpected: 3\n\n\t- Glyph name: obreve\tContours detected: 122\tExpected: 3\n\n\t- Glyph name: Ohungarumlaut\tContours detected: 114\tExpected: 4\n\n\t- Glyph name: ohungarumlaut\tContours detected: 121\tExpected: 4\n\n\t- Glyph name: OE\tContours detected: 120\tExpected: 2\n\n\t- Glyph name: oe\tContours detected: 25\tExpected: 3\n\n\t- Glyph name: Racute\tContours detected: 82\tExpected: 3\n\n\t- Glyph name: racute\tContours detected: 69\tExpected: 2\n\n\t- Glyph name: uni0156\tContours detected: 83\tExpected: 3\n\n\t- Glyph name: uni0157\tContours detected: 90\tExpected: 2\n\n\t- Glyph name: Rcaron\tContours detected: 93\tExpected: 3\n\n\t- Glyph name: rcaron\tContours detected: 75\tExpected: 2\n\n\t- Glyph name: Sacute\tContours detected: 55\tExpected: 2\n\n\t- Glyph name: sacute\tContours detected: 21\tExpected: 2\n\n\t- Glyph name: Scircumflex\tContours detected: 55\tExpected: 2\n\n\t- Glyph name: scircumflex\tContours detected: 30\tExpected: 2\n\n\t- Glyph name: Scedilla\tContours detected: 20\tExpected: 1 or 2\n\n\t- Glyph name: scedilla\tContours detected: 10\tExpected: 1 or 2\n\n\t- Glyph name: Scaron\tContours detected: 66\tExpected: 2\n\n\t- Glyph name: scaron\tContours detected: 27\tExpected: 2\n\n\t- Glyph name: Tcaron\tContours detected: 46\tExpected: 2\n\n\t- Glyph name: tcaron\tContours detected: 16\tExpected: 2\n\n\t- Glyph name: Tbar\tContours detected: 18\tExpected: 1\n\n\t- Glyph name: tbar\tContours detected: 11\tExpected: 1\n\n\t- Glyph name: Utilde\tContours detected: 46\tExpected: 2\n\n\t- Glyph name: utilde\tContours detected: 49\tExpected: 2\n\n\t- Glyph name: Umacron\tContours detected: 44\tExpected: 2\n\n\t- Glyph name: umacron\tContours detected: 47\tExpected: 2\n\n\t- Glyph name: Ubreve\tContours detected: 61\tExpected: 2\n\n\t- Glyph name: ubreve\tContours detected: 73\tExpected: 2\n\n\t- Glyph name: Uring\tContours detected: 46\tExpected: 3\n\n\t- Glyph name: uring\tContours detected: 48\tExpected: 3\n\n\t- Glyph name: Uhungarumlaut\tContours detected: 44\tExpected: 3\n\n\t- Glyph name: uhungarumlaut\tContours detected: 72\tExpected: 3\n\n\t- Glyph name: Uogonek\tContours detected: 21\tExpected: 1\n\n\t- Glyph name: uogonek\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: Wcircumflex\tContours detected: 52\tExpected: 2\n\n\t- Glyph name: wcircumflex\tContours detected: 75\tExpected: 2\n\n\t- Glyph name: Ycircumflex\tContours detected: 17\tExpected: 2\n\n\t- Glyph name: ycircumflex\tContours detected: 36\tExpected: 2\n\n\t- Glyph name: Ydieresis\tContours detected: 42\tExpected: 3\n\n\t- Glyph name: Zacute\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: zacute\tContours detected: 29\tExpected: 2\n\n\t- Glyph name: Zdotaccent\tContours detected: 21\tExpected: 2\n\n\t- Glyph name: zdotaccent\tContours detected: 36\tExpected: 2\n\n\t- Glyph name: Zcaron\tContours detected: 20\tExpected: 2\n\n\t- Glyph name: zcaron\tContours detected: 35\tExpected: 2\n\n\t- Glyph name: longs\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: florin\tContours detected: 17\tExpected: 1\n\n\t- Glyph name: AEacute\tContours detected: 46\tExpected: 3\n\n\t- Glyph name: aeacute\tContours detected: 30\tExpected: 4\n\n\t- Glyph name: Oslashacute\tContours detected: 30\tExpected: 4\n\n\t- Glyph name: oslashacute\tContours detected: 49\tExpected: 4\n\n\t- Glyph name: uni0218\tContours detected: 56\tExpected: 2\n\n\t- Glyph name: uni0219\tContours detected: 42\tExpected: 2\n\n\t- Glyph name: uni021A\tContours detected: 36\tExpected: 2\n\n\t- Glyph name: uni021B\tContours detected: 36\tExpected: 2\n\n\t- Glyph name: uni0237\tContours detected: 36\tExpected: 1\n\n\t- Glyph name: uni02BC\tContours detected: 24\tExpected: 1\n\n\t- Glyph name: circumflex\tContours detected: 12\tExpected: 1\n\n\t- Glyph name: caron\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: breve\tContours detected: 27\tExpected: 1\n\n\t- Glyph name: dotaccent\tContours detected: 10\tExpected: 1\n\n\t- Glyph name: ogonek\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: tilde\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: hungarumlaut\tContours detected: 26\tExpected: 2\n\n\t- Glyph name: gravecomb\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: acutecomb\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni0302\tContours detected: 12\tExpected: 1\n\n\t- Glyph name: tildecomb\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni0306\tContours detected: 27\tExpected: 1\n\n\t- Glyph name: uni0307\tContours detected: 10\tExpected: 1\n\n\t- Glyph name: uni0308\tContours detected: 13\tExpected: 2\n\n\t- Glyph name: uni030B\tContours detected: 26\tExpected: 2\n\n\t- Glyph name: uni030C\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: uni0312\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: uni0326\tContours detected: 24\tExpected: 1\n\n\t- Glyph name: uni0327\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: uni0328\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: uni0335\tContours detected: 13\tExpected: 1\n\n\t- Glyph name: uni0337\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: uni0338\tContours detected: 31\tExpected: 1\n\n\t- Glyph name: uni0400\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: uni0401\tContours detected: 22\tExpected: 3\n\n\t- Glyph name: uni0402\tContours detected: 98\tExpected: 1\n\n\t- Glyph name: uni0403\tContours detected: 13\tExpected: 2\n\n\t- Glyph name: uni0404\tContours detected: 76\tExpected: 1\n\n\t- Glyph name: uni0405\tContours detected: 53\tExpected: 1\n\n\t- Glyph name: uni0406\tContours detected: 31\tExpected: 1\n\n\t- Glyph name: uni0407\tContours detected: 44\tExpected: 3\n\n\t- Glyph name: uni0408\tContours detected: 11\tExpected: 1\n\n\t- Glyph name: uni0409\tContours detected: 72\tExpected: 2\n\n\t- Glyph name: uni040A\tContours detected: 178\tExpected: 2\n\n\t- Glyph name: uni040B\tContours detected: 50\tExpected: 1\n\n\t- Glyph name: uni040C\tContours detected: 46\tExpected: 2\n\n\t- Glyph name: uni040D\tContours detected: 19\tExpected: 2\n\n\t- Glyph name: uni040E\tContours detected: 23\tExpected: 2\n\n\t- Glyph name: uni040F\tContours detected: 84\tExpected: 1\n\n\t- Glyph name: uni0410\tContours detected: 93\tExpected: 2\n\n\t- Glyph name: uni0411\tContours detected: 40\tExpected: 2\n\n\t- Glyph name: uni0412\tContours detected: 126\tExpected: 3\n\n\t- Glyph name: uni0413\tContours detected: 11\tExpected: 1\n\n\t- Glyph name: uni0414\tContours detected: 69\tExpected: 2\n\n\t- Glyph name: uni0415\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: uni0416\tContours detected: 29\tExpected: 1\n\n\t- Glyph name: uni0417\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: uni0418\tContours detected: 17\tExpected: 1\n\n\t- Glyph name: uni0419\tContours detected: 24\tExpected: 2\n\n\t- Glyph name: uni041A\tContours detected: 44\tExpected: 1\n\n\t- Glyph name: uni041B\tContours detected: 32\tExpected: 1\n\n\t- Glyph name: uni041C\tContours detected: 12\tExpected: 1\n\n\t- Glyph name: uni041D\tContours detected: 32\tExpected: 1\n\n\t- Glyph name: uni041E\tContours detected: 111\tExpected: 2\n\n\t- Glyph name: uni041F\tContours detected: 191\tExpected: 1\n\n\t- Glyph name: uni0420\tContours detected: 10\tExpected: 1 or 2\n\n\t- Glyph name: uni0421\tContours detected: 13\tExpected: 1\n\n\t- Glyph name: uni0422\tContours detected: 33\tExpected: 1\n\n\t- Glyph name: uni0423\tContours detected: 16\tExpected: 1\n\n\t- Glyph name: uni0424\tContours detected: 59\tExpected: 3\n\n\t- Glyph name: uni0425\tContours detected: 28\tExpected: 1\n\n\t- Glyph name: uni0426\tContours detected: 17\tExpected: 1\n\n\t- Glyph name: uni0427\tContours detected: 75\tExpected: 1\n\n\t- Glyph name: uni0428\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: uni0429\tContours detected: 28\tExpected: 1\n\n\t- Glyph name: uni042A\tContours detected: 71\tExpected: 2\n\n\t- Glyph name: uni042B\tContours detected: 82\tExpected: 3\n\n\t- Glyph name: uni042C\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: uni042D\tContours detected: 17\tExpected: 1\n\n\t- Glyph name: uni042E\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: uni042F\tContours detected: 46\tExpected: 2\n\n\t- Glyph name: uni0430\tContours detected: 20\tExpected: 2\n\n\t- Glyph name: uni0431\tContours detected: 15\tExpected: 2\n\n\t- Glyph name: uni0432\tContours detected: 48\tExpected: 3\n\n\t- Glyph name: uni0433\tContours detected: 49\tExpected: 1\n\n\t- Glyph name: uni0434\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: uni0435\tContours detected: 21\tExpected: 2\n\n\t- Glyph name: uni0436\tContours detected: 29\tExpected: 1\n\n\t- Glyph name: uni0437\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: uni0438\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0439\tContours detected: 18\tExpected: 2\n\n\t- Glyph name: uni043A\tContours detected: 13\tExpected: 1\n\n\t- Glyph name: uni043B\tContours detected: 19\tExpected: 1\n\n\t- Glyph name: uni043C\tContours detected: 33\tExpected: 1\n\n\t- Glyph name: uni043D\tContours detected: 80\tExpected: 1\n\n\t- Glyph name: uni043E\tContours detected: 95\tExpected: 2\n\n\t- Glyph name: uni043F\tContours detected: 112\tExpected: 1\n\n\t- Glyph name: uni0440\tContours detected: 37\tExpected: 2\n\n\t- Glyph name: uni0441\tContours detected: 31\tExpected: 1\n\n\t- Glyph name: uni0442\tContours detected: 66\tExpected: 1\n\n\t- Glyph name: uni0443\tContours detected: 38\tExpected: 1\n\n\t- Glyph name: uni0444\tContours detected: 36\tExpected: 3\n\n\t- Glyph name: uni0445\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: uni0446\tContours detected: 25\tExpected: 1\n\n\t- Glyph name: uni0447\tContours detected: 44\tExpected: 1\n\n\t- Glyph name: uni0448\tContours detected: 85\tExpected: 1\n\n\t- Glyph name: uni0449\tContours detected: 67\tExpected: 1\n\n\t- Glyph name: uni044A\tContours detected: 61\tExpected: 2\n\n\t- Glyph name: uni044B\tContours detected: 42\tExpected: 3\n\n\t- Glyph name: uni044C\tContours detected: 75\tExpected: 2\n\n\t- Glyph name: uni044D\tContours detected: 26\tExpected: 1\n\n\t- Glyph name: uni044E\tContours detected: 14\tExpected: 2\n\n\t- Glyph name: uni044F\tContours detected: 14\tExpected: 2\n\n\t- Glyph name: uni0450\tContours detected: 23\tExpected: 3\n\n\t- Glyph name: uni0451\tContours detected: 34\tExpected: 4\n\n\t- Glyph name: uni0452\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni0453\tContours detected: 52\tExpected: 2\n\n\t- Glyph name: uni0454\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: uni0455\tContours detected: 18\tExpected: 1\n\n\t- Glyph name: uni0456\tContours detected: 31\tExpected: 2\n\n\t- Glyph name: uni0457\tContours detected: 47\tExpected: 3\n\n\t- Glyph name: uni0458\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: uni0459\tContours detected: 40\tExpected: 2\n\n\t- Glyph name: uni045A\tContours detected: 29\tExpected: 2\n\n\t- Glyph name: uni045B\tContours detected: 24\tExpected: 1\n\n\t- Glyph name: uni045C\tContours detected: 16\tExpected: 2\n\n\t- Glyph name: uni045D\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni045E\tContours detected: 54\tExpected: 2\n\n\t- Glyph name: uni045F\tContours detected: 68\tExpected: 1 or 2\n\n\t- Glyph name: uni0462\tContours detected: 16\tExpected: 2\n\n\t- Glyph name: uni0463\tContours detected: 27\tExpected: 2\n\n\t- Glyph name: uni046A\tContours detected: 90\tExpected: 2\n\n\t- Glyph name: uni046B\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni0472\tContours detected: 78\tExpected: 3\n\n\t- Glyph name: uni0473\tContours detected: 35\tExpected: 3\n\n\t- Glyph name: uni0474\tContours detected: 22\tExpected: 1\n\n\t- Glyph name: uni0475\tContours detected: 35\tExpected: 1\n\n\t- Glyph name: uni0490\tContours detected: 24\tExpected: 1\n\n\t- Glyph name: uni0491\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni0492\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: uni0493\tContours detected: 44\tExpected: 1\n\n\t- Glyph name: uni0494\tContours detected: 118\tExpected: 1\n\n\t- Glyph name: uni0495\tContours detected: 88\tExpected: 1\n\n\t- Glyph name: uni0496\tContours detected: 38\tExpected: 1 or 2\n\n\t- Glyph name: uni0497\tContours detected: 59\tExpected: 1 or 2\n\n\t- Glyph name: uni0498\tContours detected: 16\tExpected: 1 or 2\n\n\t- Glyph name: uni0499\tContours detected: 25\tExpected: 1 or 2\n\n\t- Glyph name: uni049A\tContours detected: 13\tExpected: 1 or 2\n\n\t- Glyph name: uni049B\tContours detected: 11\tExpected: 1 or 2\n\n\t- Glyph name: uni049C\tContours detected: 131\tExpected: 1\n\n\t- Glyph name: uni049D\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni04A0\tContours detected: 138\tExpected: 1\n\n\t- Glyph name: uni04A1\tContours detected: 54\tExpected: 1\n\n\t- Glyph name: uni04A2\tContours detected: 71\tExpected: 1 or 2\n\n\t- Glyph name: uni04A3\tContours detected: 13\tExpected: 1 or 2\n\n\t- Glyph name: uni04A4\tContours detected: 36\tExpected: 1\n\n\t- Glyph name: uni04A5\tContours detected: 53\tExpected: 1\n\n\t- Glyph name: uni04AA\tContours detected: 20\tExpected: 1 or 2\n\n\t- Glyph name: uni04AB\tContours detected: 59\tExpected: 1 or 2\n\n\t- Glyph name: Ustraitcy\tContours detected: 23\tExpected: 1\n\n\t- Glyph name: ustraitcy\tContours detected: 19\tExpected: 1\n\n\t- Glyph name: Ustraitstrokecy\tContours detected: 36\tExpected: 1\n\n\t- Glyph name: ustraitstrokecy\tContours detected: 41\tExpected: 1\n\n\t- Glyph name: uni04B6\tContours detected: 16\tExpected: 1 or 2\n\n\t- Glyph name: uni04B7\tContours detected: 24\tExpected: 1 or 2\n\n\t- Glyph name: uni04B8\tContours detected: 59\tExpected: 1\n\n\t- Glyph name: uni04B9\tContours detected: 29\tExpected: 1\n\n\t- Glyph name: uni04BA\tContours detected: 113\tExpected: 1\n\n\t- Glyph name: uni04BB\tContours detected: 63\tExpected: 1\n\n\t- Glyph name: uni04C0\tContours detected: 31\tExpected: 1\n\n\t- Glyph name: uni04C1\tContours detected: 36\tExpected: 2\n\n\t- Glyph name: uni04C2\tContours detected: 45\tExpected: 2\n\n\t- Glyph name: uni04CB\tContours detected: 102\tExpected: 1 or 2\n\n\t- Glyph name: uni04CF\tContours detected: 51\tExpected: 1\n\n\t- Glyph name: uni04D0\tContours detected: 100\tExpected: 3\n\n\t- Glyph name: uni04D1\tContours detected: 36\tExpected: 3\n\n\t- Glyph name: uni04D2\tContours detected: 106\tExpected: 4\n\n\t- Glyph name: uni04D3\tContours detected: 33\tExpected: 4\n\n\t- Glyph name: uni04D4\tContours detected: 44\tExpected: 2\n\n\t- Glyph name: uni04D5\tContours detected: 27\tExpected: 3\n\n\t- Glyph name: uni04D6\tContours detected: 16\tExpected: 2\n\n\t- Glyph name: uni04D7\tContours detected: 37\tExpected: 3\n\n\t- Glyph name: uni04D8\tContours detected: 29\tExpected: 2\n\n\t- Glyph name: uni04D9\tContours detected: 21\tExpected: 2\n\n\t- Glyph name: uni04DC\tContours detected: 42\tExpected: 3\n\n\t- Glyph name: uni04DD\tContours detected: 42\tExpected: 3\n\n\t- Glyph name: uni04DE\tContours detected: 33\tExpected: 3\n\n\t- Glyph name: uni04DF\tContours detected: 22\tExpected: 3\n\n\t- Glyph name: uni04E2\tContours detected: 18\tExpected: 2\n\n\t- Glyph name: uni04E3\tContours detected: 3\tExpected: 2\n\n\t- Glyph name: uni04E4\tContours detected: 30\tExpected: 3\n\n\t- Glyph name: uni04E5\tContours detected: 15\tExpected: 3\n\n\t- Glyph name: uni04E6\tContours detected: 124\tExpected: 4\n\n\t- Glyph name: uni04E7\tContours detected: 108\tExpected: 4\n\n\t- Glyph name: uni04E8\tContours detected: 9\tExpected: 3\n\n\t- Glyph name: uni04E9\tContours detected: 35\tExpected: 3\n\n\t- Glyph name: uni04EE\tContours detected: 17\tExpected: 2\n\n\t- Glyph name: uni04EF\tContours detected: 39\tExpected: 2\n\n\t- Glyph name: uni04F0\tContours detected: 29\tExpected: 3\n\n\t- Glyph name: uni04F1\tContours detected: 51\tExpected: 3\n\n\t- Glyph name: uni04F2\tContours detected: 42\tExpected: 3\n\n\t- Glyph name: uni04F3\tContours detected: 64\tExpected: 3\n\n\t- Glyph name: uni04F4\tContours detected: 88\tExpected: 3\n\n\t- Glyph name: uni04F5\tContours detected: 57\tExpected: 3\n\n\t- Glyph name: uni04F6\tContours detected: 8\tExpected: 1 or 2\n\n\t- Glyph name: uni04F7\tContours detected: 52\tExpected: 1 or 2\n\n\t- Glyph name: uni04F8\tContours detected: 95\tExpected: 5\n\n\t- Glyph name: uni04F9\tContours detected: 55\tExpected: 5\n\n\t- Glyph name: uni051A\tContours detected: 24\tExpected: 2\n\n\t- Glyph name: uni051B\tContours detected: 30\tExpected: 2\n\n\t- Glyph name: uni051C\tContours detected: 50\tExpected: 1\n\n\t- Glyph name: uni051D\tContours detected: 63\tExpected: 1\n\n\t- Glyph name: uni0524\tContours detected: 48\tExpected: 1\n\n\t- Glyph name: uni0525\tContours detected: 23\tExpected: 1\n\n\t- Glyph name: Wgrave\tContours detected: 52\tExpected: 2\n\n\t- Glyph name: wgrave\tContours detected: 65\tExpected: 2\n\n\t- Glyph name: Wacute\tContours detected: 52\tExpected: 2\n\n\t- Glyph name: wacute\tContours detected: 66\tExpected: 2\n\n\t- Glyph name: Wdieresis\tContours detected: 77\tExpected: 3\n\n\t- Glyph name: wdieresis\tContours detected: 76\tExpected: 3\n\n\t- Glyph name: uni1E9E\tContours detected: 78\tExpected: 1\n\n\t- Glyph name: Ygrave\tContours detected: 17\tExpected: 2\n\n\t- Glyph name: ygrave\tContours detected: 26\tExpected: 2\n\n\t- Glyph name: emdash\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: quoteleft\tContours detected: 12\tExpected: 1\n\n\t- Glyph name: quoteright\tContours detected: 19\tExpected: 1\n\n\t- Glyph name: quotesinglbase\tContours detected: 22\tExpected: 1\n\n\t- Glyph name: quotedblright\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: quotedblbase\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: dagger\tContours detected: 39\tExpected: 1 or 2\n\n\t- Glyph name: daggerdbl\tContours detected: 18\tExpected: 1 or 3\n\n\t- Glyph name: bullet\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: ellipsis\tContours detected: 26\tExpected: 3\n\n\t- Glyph name: perthousand\tContours detected: 14\tExpected: 6 or 7\n\n\t- Glyph name: guilsinglleft\tContours detected: 11\tExpected: 1\n\n\t- Glyph name: guilsinglright\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: fraction\tContours detected: 26\tExpected: 1\n\n\t- Glyph name: uni2070\tContours detected: 5\tExpected: 2 or 3\n\n\t- Glyph name: uni2074\tContours detected: 19\tExpected: 1 or 2\n\n\t- Glyph name: uni2075\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni2077\tContours detected: 22\tExpected: 1\n\n\t- Glyph name: uni2078\tContours detected: 22\tExpected: 3\n\n\t- Glyph name: uni2079\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: uni207D\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: uni207E\tContours detected: 19\tExpected: 1\n\n\t- Glyph name: uni2080\tContours detected: 5\tExpected: 2 or 3\n\n\t- Glyph name: uni2081\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: uni2082\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: uni2084\tContours detected: 19\tExpected: 1 or 2\n\n\t- Glyph name: uni2085\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni2087\tContours detected: 22\tExpected: 1\n\n\t- Glyph name: uni2088\tContours detected: 22\tExpected: 3\n\n\t- Glyph name: uni2089\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: uni208D\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: uni208E\tContours detected: 19\tExpected: 1\n\n\t- Glyph name: uni20AA\tContours detected: 25\tExpected: 2\n\n\t- Glyph name: Euro\tContours detected: 79\tExpected: 1 or 2\n\n\t- Glyph name: uni20AE\tContours detected: 13\tExpected: 1\n\n\t- Glyph name: uni20B4\tContours detected: 62\tExpected: 1 or 2\n\n\t- Glyph name: uni20B8\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: uni20B9\tContours detected: 16\tExpected: 1\n\n\t- Glyph name: uni20BD\tContours detected: 101\tExpected: 2\n\n\t- Glyph name: uni2116\tContours detected: 115\tExpected: 3 or 4\n\n\t- Glyph name: trademark\tContours detected: 33\tExpected: 2\n\n\t- Glyph name: estimated\tContours detected: 42\tExpected: 2\n\n\t- Glyph name: uni2153\tContours detected: 41\tExpected: 3\n\n\t- Glyph name: uni2154\tContours detected: 35\tExpected: 1 or 3\n\n\t- Glyph name: oneeighth\tContours detected: 62\tExpected: 5\n\n\t- Glyph name: threeeighths\tContours detected: 49\tExpected: 5\n\n\t- Glyph name: fiveeighths\tContours detected: 53\tExpected: 5\n\n\t- Glyph name: seveneighths\tContours detected: 70\tExpected: 5\n\n\t- Glyph name: partialdiff\tContours detected: 37\tExpected: 2\n\n\t- Glyph name: uni2206\tContours detected: 61\tExpected: 2\n\n\t- Glyph name: product\tContours detected: 37\tExpected: 1\n\n\t- Glyph name: summation\tContours detected: 28\tExpected: 1\n\n\t- Glyph name: uni2215\tContours detected: 38\tExpected: 1\n\n\t- Glyph name: radical\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: infinity\tContours detected: 46\tExpected: 3\n\n\t- Glyph name: integral\tContours detected: 17\tExpected: 1\n\n\t- Glyph name: approxequal\tContours detected: 18\tExpected: 2\n\n\t- Glyph name: notequal\tContours detected: 10\tExpected: 1\n\n\t- Glyph name: lessequal\tContours detected: 3\tExpected: 2\n\n\t- Glyph name: greaterequal\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: lozenge\tContours detected: 91\tExpected: 2\n\n\t- Glyph name: fi\tContours detected: 30\tExpected: 1, 2 or 3\n\n\t- Glyph name: fl\tContours detected: 47\tExpected: 1 or 2\n\n\t- Glyph name: A\tContours detected: 93\tExpected: 2\n\n\t- Glyph name: AE\tContours detected: 44\tExpected: 2\n\n\t- Glyph name: AEacute\tContours detected: 46\tExpected: 3\n\n\t- Glyph name: Aacute\tContours detected: 95\tExpected: 3\n\n\t- Glyph name: Abreve\tContours detected: 113\tExpected: 3\n\n\t- Glyph name: Acircumflex\tContours detected: 95\tExpected: 3\n\n\t- Glyph name: Adieresis\tContours detected: 120\tExpected: 4\n\n\t- Glyph name: Agrave\tContours detected: 95\tExpected: 3\n\n\t- Glyph name: Amacron\tContours detected: 96\tExpected: 3\n\n\t- Glyph name: Aogonek\tContours detected: 22\tExpected: 2 or 3\n\n\t- Glyph name: Aring\tContours detected: 98\tExpected: 3 or 4\n\n\t- Glyph name: Atilde\tContours detected: 98\tExpected: 3\n\n\t- Glyph name: B\tContours detected: 126\tExpected: 2 or 3\n\n\t- Glyph name: C\tContours detected: 13\tExpected: 1\n\n\t- Glyph name: Cacute\tContours detected: 15\tExpected: 2\n\n\t- Glyph name: Ccaron\tContours detected: 26\tExpected: 2\n\n\t- Glyph name: Ccedilla\tContours detected: 14\tExpected: 1 or 2\n\n\t- Glyph name: Ccircumflex\tContours detected: 15\tExpected: 2\n\n\t- Glyph name: Cdotaccent\tContours detected: 27\tExpected: 2\n\n\t- Glyph name: D\tContours detected: 18\tExpected: 2\n\n\t- Glyph name: Dcaron\tContours detected: 31\tExpected: 3\n\n\t- Glyph name: Dcroat\tContours detected: 60\tExpected: 2\n\n\t- Glyph name: E\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: Eacute\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: Ebreve\tContours detected: 29\tExpected: 2\n\n\t- Glyph name: Ecaron\tContours detected: 22\tExpected: 2\n\n\t- Glyph name: Ecircumflex\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: Edieresis\tContours detected: 36\tExpected: 3\n\n\t- Glyph name: Edotaccent\tContours detected: 23\tExpected: 2\n\n\t- Glyph name: Egrave\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: Emacron\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: Eng\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: Eth\tContours detected: 29\tExpected: 2\n\n\t- Glyph name: Euro\tContours detected: 79\tExpected: 1 or 2\n\n\t- Glyph name: F\tContours detected: 13\tExpected: 1\n\n\t- Glyph name: G\tContours detected: 24\tExpected: 1\n\n\t- Glyph name: Gbreve\tContours detected: 44\tExpected: 2\n\n\t- Glyph name: Gcircumflex\tContours detected: 26\tExpected: 2\n\n\t- Glyph name: Gdotaccent\tContours detected: 38\tExpected: 2\n\n\t- Glyph name: H\tContours detected: 32\tExpected: 1\n\n\t- Glyph name: Hbar\tContours detected: 14\tExpected: 2\n\n\t- Glyph name: Hcircumflex\tContours detected: 34\tExpected: 2\n\n\t- Glyph name: I\tContours detected: 31\tExpected: 1\n\n\t- Glyph name: IJ\tContours detected: 111\tExpected: 1 or 2\n\n\t- Glyph name: Iacute\tContours detected: 33\tExpected: 2\n\n\t- Glyph name: Ibreve\tContours detected: 51\tExpected: 2\n\n\t- Glyph name: Icircumflex\tContours detected: 33\tExpected: 2\n\n\t- Glyph name: Idieresis\tContours detected: 58\tExpected: 3\n\n\t- Glyph name: Idotaccent\tContours detected: 45\tExpected: 2\n\n\t- Glyph name: Igrave\tContours detected: 33\tExpected: 2\n\n\t- Glyph name: Imacron\tContours detected: 34\tExpected: 2\n\n\t- Glyph name: Iogonek\tContours detected: 80\tExpected: 1 or 2\n\n\t- Glyph name: Itilde\tContours detected: 36\tExpected: 2\n\n\t- Glyph name: J\tContours detected: 11\tExpected: 1\n\n\t- Glyph name: Jcircumflex\tContours detected: 13\tExpected: 2\n\n\t- Glyph name: K\tContours detected: 31\tExpected: 1 or 2\n\n\t- Glyph name: L\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: Lacute\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: Lcaron\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: Ldot\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: Lslash\tContours detected: 77\tExpected: 1\n\n\t- Glyph name: M\tContours detected: 12\tExpected: 1\n\n\t- Glyph name: N\tContours detected: 11\tExpected: 1\n\n\t- Glyph name: Nacute\tContours detected: 13\tExpected: 2\n\n\t- Glyph name: Ncaron\tContours detected: 24\tExpected: 2\n\n\t- Glyph name: Ntilde\tContours detected: 16\tExpected: 2\n\n\t- Glyph name: O\tContours detected: 111\tExpected: 2\n\n\t- Glyph name: OE\tContours detected: 120\tExpected: 2\n\n\t- Glyph name: Oacute\tContours detected: 113\tExpected: 3\n\n\t- Glyph name: Ocircumflex\tContours detected: 113\tExpected: 3\n\n\t- Glyph name: Odieresis\tContours detected: 138\tExpected: 4\n\n\t- Glyph name: Ograve\tContours detected: 113\tExpected: 3\n\n\t- Glyph name: Ohungarumlaut\tContours detected: 114\tExpected: 4\n\n\t- Glyph name: Omacron\tContours detected: 114\tExpected: 3\n\n\t- Glyph name: Oslash\tContours detected: 28\tExpected: 2 or 3\n\n\t- Glyph name: Oslashacute\tContours detected: 30\tExpected: 4\n\n\t- Glyph name: Otilde\tContours detected: 116\tExpected: 3\n\n\t- Glyph name: P\tContours detected: 10\tExpected: 1 or 2\n\n\t- Glyph name: Q\tContours detected: 24\tExpected: 2\n\n\t- Glyph name: R\tContours detected: 80\tExpected: 1 or 2\n\n\t- Glyph name: Racute\tContours detected: 82\tExpected: 3\n\n\t- Glyph name: Rcaron\tContours detected: 93\tExpected: 3\n\n\t- Glyph name: S\tContours detected: 53\tExpected: 1\n\n\t- Glyph name: Sacute\tContours detected: 55\tExpected: 2\n\n\t- Glyph name: Scaron\tContours detected: 66\tExpected: 2\n\n\t- Glyph name: Scircumflex\tContours detected: 55\tExpected: 2\n\n\t- Glyph name: T\tContours detected: 33\tExpected: 1\n\n\t- Glyph name: Tbar\tContours detected: 18\tExpected: 1\n\n\t- Glyph name: Tcaron\tContours detected: 46\tExpected: 2\n\n\t- Glyph name: Thorn\tContours detected: 124\tExpected: 1 or 2\n\n\t- Glyph name: U\tContours detected: 41\tExpected: 1\n\n\t- Glyph name: Uacute\tContours detected: 43\tExpected: 2\n\n\t- Glyph name: Ubreve\tContours detected: 61\tExpected: 2\n\n\t- Glyph name: Ucircumflex\tContours detected: 43\tExpected: 2\n\n\t- Glyph name: Udieresis\tContours detected: 68\tExpected: 3\n\n\t- Glyph name: Ugrave\tContours detected: 43\tExpected: 2\n\n\t- Glyph name: Uhungarumlaut\tContours detected: 44\tExpected: 3\n\n\t- Glyph name: Umacron\tContours detected: 44\tExpected: 2\n\n\t- Glyph name: Uogonek\tContours detected: 21\tExpected: 1\n\n\t- Glyph name: Uring\tContours detected: 46\tExpected: 3\n\n\t- Glyph name: Utilde\tContours detected: 46\tExpected: 2\n\n\t- Glyph name: V\tContours detected: 68\tExpected: 1\n\n\t- Glyph name: W\tContours detected: 50\tExpected: 1 or 2\n\n\t- Glyph name: Wacute\tContours detected: 52\tExpected: 2\n\n\t- Glyph name: Wcircumflex\tContours detected: 52\tExpected: 2\n\n\t- Glyph name: Wdieresis\tContours detected: 77\tExpected: 3\n\n\t- Glyph name: Wgrave\tContours detected: 52\tExpected: 2\n\n\t- Glyph name: X\tContours detected: 28\tExpected: 1\n\n\t- Glyph name: Y\tContours detected: 15\tExpected: 1\n\n\t- Glyph name: Yacute\tContours detected: 17\tExpected: 2\n\n\t- Glyph name: Ycircumflex\tContours detected: 17\tExpected: 2\n\n\t- Glyph name: Ydieresis\tContours detected: 42\tExpected: 3\n\n\t- Glyph name: Ygrave\tContours detected: 17\tExpected: 2\n\n\t- Glyph name: Z\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: Zacute\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: Zcaron\tContours detected: 20\tExpected: 2\n\n\t- Glyph name: Zdotaccent\tContours detected: 21\tExpected: 2\n\n\t- Glyph name: a\tContours detected: 20\tExpected: 2\n\n\t- Glyph name: aacute\tContours detected: 23\tExpected: 3\n\n\t- Glyph name: abreve\tContours detected: 47\tExpected: 3\n\n\t- Glyph name: acircumflex\tContours detected: 32\tExpected: 3\n\n\t- Glyph name: acute\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: adieresis\tContours detected: 33\tExpected: 4\n\n\t- Glyph name: ae\tContours detected: 27\tExpected: 3\n\n\t- Glyph name: aeacute\tContours detected: 30\tExpected: 4\n\n\t- Glyph name: agrave\tContours detected: 22\tExpected: 3\n\n\t- Glyph name: amacron\tContours detected: 21\tExpected: 3\n\n\t- Glyph name: ampersand\tContours detected: 19\tExpected: 1, 2 or 3\n\n\t- Glyph name: aogonek\tContours detected: 42\tExpected: 2\n\n\t- Glyph name: approxequal\tContours detected: 18\tExpected: 2\n\n\t- Glyph name: aring\tContours detected: 22\tExpected: 4\n\n\t- Glyph name: asciicircum\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: asciitilde\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: asterisk\tContours detected: 11\tExpected: 1 or 4\n\n\t- Glyph name: at\tContours detected: 48\tExpected: 2\n\n\t- Glyph name: atilde\tContours detected: 23\tExpected: 3\n\n\t- Glyph name: b\tContours detected: 78\tExpected: 2\n\n\t- Glyph name: backslash\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: bar\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: braceleft\tContours detected: 72\tExpected: 1\n\n\t- Glyph name: braceright\tContours detected: 21\tExpected: 1\n\n\t- Glyph name: bracketleft\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: bracketright\tContours detected: 29\tExpected: 1\n\n\t- Glyph name: breve\tContours detected: 27\tExpected: 1\n\n\t- Glyph name: brokenbar\tContours detected: 28\tExpected: 2\n\n\t- Glyph name: bullet\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: c\tContours detected: 31\tExpected: 1\n\n\t- Glyph name: cacute\tContours detected: 34\tExpected: 2\n\n\t- Glyph name: caron\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: ccaron\tContours detected: 40\tExpected: 2\n\n\t- Glyph name: ccedilla\tContours detected: 9\tExpected: 1 or 2\n\n\t- Glyph name: ccircumflex\tContours detected: 43\tExpected: 2\n\n\t- Glyph name: cdotaccent\tContours detected: 41\tExpected: 2\n\n\t- Glyph name: cedilla\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: cent\tContours detected: 11\tExpected: 1 or 2\n\n\t- Glyph name: circumflex\tContours detected: 12\tExpected: 1\n\n\t- Glyph name: colon\tContours detected: 14\tExpected: 2\n\n\t- Glyph name: comma\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: currency\tContours detected: 23\tExpected: 2\n\n\t- Glyph name: d\tContours detected: 48\tExpected: 2\n\n\t- Glyph name: dagger\tContours detected: 39\tExpected: 1 or 2\n\n\t- Glyph name: daggerdbl\tContours detected: 18\tExpected: 1 or 3\n\n\t- Glyph name: dcaron\tContours detected: 52\tExpected: 3\n\n\t- Glyph name: dcroat\tContours detected: 61\tExpected: 2\n\n\t- Glyph name: degree\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: dieresis\tContours detected: 13\tExpected: 2\n\n\t- Glyph name: divide\tContours detected: 35\tExpected: 3\n\n\t- Glyph name: dollar\tContours detected: 17\tExpected: 1, 3 or 5\n\n\t- Glyph name: dotaccent\tContours detected: 10\tExpected: 1\n\n\t- Glyph name: dotlessi\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: e\tContours detected: 21\tExpected: 2\n\n\t- Glyph name: eacute\tContours detected: 24\tExpected: 3\n\n\t- Glyph name: ebreve\tContours detected: 48\tExpected: 3\n\n\t- Glyph name: ecaron\tContours detected: 30\tExpected: 3\n\n\t- Glyph name: ecircumflex\tContours detected: 33\tExpected: 3\n\n\t- Glyph name: edieresis\tContours detected: 34\tExpected: 4\n\n\t- Glyph name: edotaccent\tContours detected: 31\tExpected: 3\n\n\t- Glyph name: egrave\tContours detected: 23\tExpected: 3\n\n\t- Glyph name: eight\tContours detected: 21\tExpected: 3\n\n\t- Glyph name: ellipsis\tContours detected: 26\tExpected: 3\n\n\t- Glyph name: emacron\tContours detected: 22\tExpected: 3\n\n\t- Glyph name: emdash\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: eng\tContours detected: 125\tExpected: 1\n\n\t- Glyph name: eogonek\tContours detected: 63\tExpected: 2\n\n\t- Glyph name: equal\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: estimated\tContours detected: 42\tExpected: 2\n\n\t- Glyph name: eth\tContours detected: 67\tExpected: 2\n\n\t- Glyph name: exclam\tContours detected: 50\tExpected: 2\n\n\t- Glyph name: exclamdown\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: f\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: fi\tContours detected: 30\tExpected: 3\n\n\t- Glyph name: five\tContours detected: 30\tExpected: 1\n\n\t- Glyph name: fiveeighths\tContours detected: 53\tExpected: 5\n\n\t- Glyph name: fl\tContours detected: 47\tExpected: 2\n\n\t- Glyph name: four\tContours detected: 32\tExpected: 1 or 2\n\n\t- Glyph name: fraction\tContours detected: 26\tExpected: 1\n\n\t- Glyph name: g\tContours detected: 49\tExpected: 2 or 3\n\n\t- Glyph name: gbreve\tContours detected: 76\tExpected: 3 or 4\n\n\t- Glyph name: gcircumflex\tContours detected: 61\tExpected: 3 or 4\n\n\t- Glyph name: gdotaccent\tContours detected: 59\tExpected: 3 or 4\n\n\t- Glyph name: germandbls\tContours detected: 37\tExpected: 1\n\n\t- Glyph name: grave\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: greater\tContours detected: 78\tExpected: 1\n\n\t- Glyph name: greaterequal\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: guillemotleft\tContours detected: 25\tExpected: 2\n\n\t- Glyph name: guillemotright\tContours detected: 52\tExpected: 2\n\n\t- Glyph name: guilsinglleft\tContours detected: 11\tExpected: 1\n\n\t- Glyph name: guilsinglright\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: h\tContours detected: 63\tExpected: 1\n\n\t- Glyph name: hbar\tContours detected: 42\tExpected: 1\n\n\t- Glyph name: hcircumflex\tContours detected: 75\tExpected: 2\n\n\t- Glyph name: hungarumlaut\tContours detected: 26\tExpected: 2\n\n\t- Glyph name: hyphen\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: i\tContours detected: 31\tExpected: 2\n\n\t- Glyph name: iacute\tContours detected: 37\tExpected: 2\n\n\t- Glyph name: ibreve\tContours detected: 61\tExpected: 2\n\n\t- Glyph name: icircumflex\tContours detected: 46\tExpected: 2\n\n\t- Glyph name: idieresis\tContours detected: 47\tExpected: 3\n\n\t- Glyph name: igrave\tContours detected: 36\tExpected: 2\n\n\t- Glyph name: ij\tContours detected: 40\tExpected: 3 or 4\n\n\t- Glyph name: imacron\tContours detected: 35\tExpected: 2\n\n\t- Glyph name: infinity\tContours detected: 46\tExpected: 3\n\n\t- Glyph name: integral\tContours detected: 17\tExpected: 1\n\n\t- Glyph name: iogonek\tContours detected: 60\tExpected: 2 or 3\n\n\t- Glyph name: itilde\tContours detected: 37\tExpected: 2\n\n\t- Glyph name: j\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: jcircumflex\tContours detected: 48\tExpected: 2\n\n\t- Glyph name: k\tContours detected: 115\tExpected: 1 or 2\n\n\t- Glyph name: kgreenlandic\tContours detected: 14\tExpected: 1 or 2\n\n\t- Glyph name: l\tContours detected: 51\tExpected: 1\n\n\t- Glyph name: lacute\tContours detected: 54\tExpected: 2\n\n\t- Glyph name: lcaron\tContours detected: 55\tExpected: 2\n\n\t- Glyph name: ldot\tContours detected: 64\tExpected: 2\n\n\t- Glyph name: less\tContours detected: 37\tExpected: 1\n\n\t- Glyph name: lessequal\tContours detected: 3\tExpected: 2\n\n\t- Glyph name: logicalnot\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: longs\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: lozenge\tContours detected: 91\tExpected: 2\n\n\t- Glyph name: lslash\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: m\tContours detected: 24\tExpected: 1\n\n\t- Glyph name: multiply\tContours detected: 45\tExpected: 1\n\n\t- Glyph name: n\tContours detected: 30\tExpected: 1\n\n\t- Glyph name: nacute\tContours detected: 33\tExpected: 2\n\n\t- Glyph name: napostrophe\tContours detected: 42\tExpected: 2\n\n\t- Glyph name: ncaron\tContours detected: 39\tExpected: 2\n\n\t- Glyph name: nine\tContours detected: 19\tExpected: 1 or 2\n\n\t- Glyph name: notequal\tContours detected: 10\tExpected: 1\n\n\t- Glyph name: ntilde\tContours detected: 33\tExpected: 2\n\n\t- Glyph name: numbersign\tContours detected: 24\tExpected: 2\n\n\t- Glyph name: o\tContours detected: 95\tExpected: 2\n\n\t- Glyph name: oacute\tContours detected: 98\tExpected: 3\n\n\t- Glyph name: ocircumflex\tContours detected: 107\tExpected: 3\n\n\t- Glyph name: odieresis\tContours detected: 108\tExpected: 4\n\n\t- Glyph name: oe\tContours detected: 25\tExpected: 3\n\n\t- Glyph name: ogonek\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: ograve\tContours detected: 97\tExpected: 3\n\n\t- Glyph name: ohungarumlaut\tContours detected: 121\tExpected: 4\n\n\t- Glyph name: omacron\tContours detected: 96\tExpected: 3\n\n\t- Glyph name: one\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: oneeighth\tContours detected: 62\tExpected: 5\n\n\t- Glyph name: onehalf\tContours detected: 48\tExpected: 3\n\n\t- Glyph name: onequarter\tContours detected: 59\tExpected: 3 or 4\n\n\t- Glyph name: ordfeminine\tContours detected: 13\tExpected: 2 or 3\n\n\t- Glyph name: ordmasculine\tContours detected: 17\tExpected: 2 or 3\n\n\t- Glyph name: oslash\tContours detected: 46\tExpected: 3\n\n\t- Glyph name: oslashacute\tContours detected: 49\tExpected: 4\n\n\t- Glyph name: otilde\tContours detected: 98\tExpected: 3\n\n\t- Glyph name: p\tContours detected: 37\tExpected: 2\n\n\t- Glyph name: paragraph\tContours detected: 14\tExpected: 1, 2 or 3\n\n\t- Glyph name: parenleft\tContours detected: 25\tExpected: 1\n\n\t- Glyph name: parenright\tContours detected: 24\tExpected: 1\n\n\t- Glyph name: partialdiff\tContours detected: 37\tExpected: 2\n\n\t- Glyph name: percent\tContours detected: 50\tExpected: 5\n\n\t- Glyph name: period\tContours detected: 18\tExpected: 1\n\n\t- Glyph name: periodcentered\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: perthousand\tContours detected: 14\tExpected: 6 or 7\n\n\t- Glyph name: plus\tContours detected: 29\tExpected: 1\n\n\t- Glyph name: plusminus\tContours detected: 7\tExpected: 1 or 2\n\n\t- Glyph name: product\tContours detected: 37\tExpected: 1\n\n\t- Glyph name: q\tContours detected: 30\tExpected: 2\n\n\t- Glyph name: question\tContours detected: 30\tExpected: 2\n\n\t- Glyph name: questiondown\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: quotedbl\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: quotedblbase\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: quotedblright\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: quoteleft\tContours detected: 12\tExpected: 1\n\n\t- Glyph name: quoteright\tContours detected: 19\tExpected: 1\n\n\t- Glyph name: quotesinglbase\tContours detected: 22\tExpected: 1\n\n\t- Glyph name: quotesingle\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: r\tContours detected: 66\tExpected: 1\n\n\t- Glyph name: racute\tContours detected: 69\tExpected: 2\n\n\t- Glyph name: radical\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: rcaron\tContours detected: 75\tExpected: 2\n\n\t- Glyph name: registered\tContours detected: 30\tExpected: 3 or 4\n\n\t- Glyph name: s\tContours detected: 18\tExpected: 1\n\n\t- Glyph name: sacute\tContours detected: 21\tExpected: 2\n\n\t- Glyph name: scaron\tContours detected: 27\tExpected: 2\n\n\t- Glyph name: scircumflex\tContours detected: 30\tExpected: 2\n\n\t- Glyph name: section\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: semicolon\tContours detected: 31\tExpected: 2\n\n\t- Glyph name: seven\tContours detected: 36\tExpected: 1\n\n\t- Glyph name: seveneighths\tContours detected: 70\tExpected: 5\n\n\t- Glyph name: six\tContours detected: 59\tExpected: 1 or 2\n\n\t- Glyph name: slash\tContours detected: 38\tExpected: 1\n\n\t- Glyph name: sterling\tContours detected: 20\tExpected: 1 or 2\n\n\t- Glyph name: summation\tContours detected: 28\tExpected: 1\n\n\t- Glyph name: t\tContours detected: 12\tExpected: 1\n\n\t- Glyph name: tbar\tContours detected: 11\tExpected: 1\n\n\t- Glyph name: tcaron\tContours detected: 16\tExpected: 2\n\n\t- Glyph name: thorn\tContours detected: 101\tExpected: 2\n\n\t- Glyph name: three\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: threeeighths\tContours detected: 49\tExpected: 5\n\n\t- Glyph name: threequarters\tContours detected: 46\tExpected: 3 or 4\n\n\t- Glyph name: tilde\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: trademark\tContours detected: 33\tExpected: 2\n\n\t- Glyph name: two\tContours detected: 18\tExpected: 1\n\n\t- Glyph name: u\tContours detected: 46\tExpected: 1\n\n\t- Glyph name: uacute\tContours detected: 49\tExpected: 2\n\n\t- Glyph name: ubreve\tContours detected: 73\tExpected: 2\n\n\t- Glyph name: ucircumflex\tContours detected: 58\tExpected: 2\n\n\t- Glyph name: udieresis\tContours detected: 59\tExpected: 3\n\n\t- Glyph name: ugrave\tContours detected: 48\tExpected: 2\n\n\t- Glyph name: uhungarumlaut\tContours detected: 72\tExpected: 3\n\n\t- Glyph name: umacron\tContours detected: 47\tExpected: 2\n\n\t- Glyph name: underscore\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni00B5\tContours detected: 81\tExpected: 1\n\n\t- Glyph name: uni0122\tContours detected: 27\tExpected: 2\n\n\t- Glyph name: uni0123\tContours detected: 56\tExpected: 3 or 4\n\n\t- Glyph name: uni0136\tContours detected: 34\tExpected: 2 or 3\n\n\t- Glyph name: uni0137\tContours detected: 139\tExpected: 2 or 3\n\n\t- Glyph name: uni013B\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: uni013C\tContours detected: 75\tExpected: 2\n\n\t- Glyph name: uni0145\tContours detected: 14\tExpected: 2\n\n\t- Glyph name: uni0146\tContours detected: 54\tExpected: 2\n\n\t- Glyph name: uni0156\tContours detected: 83\tExpected: 3\n\n\t- Glyph name: uni0157\tContours detected: 90\tExpected: 2\n\n\t- Glyph name: uni0218\tContours detected: 56\tExpected: 2\n\n\t- Glyph name: uni0219\tContours detected: 42\tExpected: 2\n\n\t- Glyph name: uni021A\tContours detected: 36\tExpected: 2\n\n\t- Glyph name: uni021B\tContours detected: 36\tExpected: 2\n\n\t- Glyph name: uni0237\tContours detected: 36\tExpected: 1\n\n\t- Glyph name: uni02BC\tContours detected: 24\tExpected: 1\n\n\t- Glyph name: uni0302\tContours detected: 12\tExpected: 1\n\n\t- Glyph name: uni0306\tContours detected: 27\tExpected: 1\n\n\t- Glyph name: uni0307\tContours detected: 10\tExpected: 1\n\n\t- Glyph name: uni0308\tContours detected: 13\tExpected: 2\n\n\t- Glyph name: uni030B\tContours detected: 26\tExpected: 2\n\n\t- Glyph name: uni030C\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: uni0312\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: uni0326\tContours detected: 24\tExpected: 1\n\n\t- Glyph name: uni0327\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: uni0328\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: uni0335\tContours detected: 13\tExpected: 1\n\n\t- Glyph name: uni0337\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: uni0338\tContours detected: 31\tExpected: 1\n\n\t- Glyph name: uni0400\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: uni0401\tContours detected: 22\tExpected: 3\n\n\t- Glyph name: uni0402\tContours detected: 98\tExpected: 1\n\n\t- Glyph name: uni0403\tContours detected: 13\tExpected: 2\n\n\t- Glyph name: uni0404\tContours detected: 76\tExpected: 1\n\n\t- Glyph name: uni0405\tContours detected: 53\tExpected: 1\n\n\t- Glyph name: uni0406\tContours detected: 31\tExpected: 1\n\n\t- Glyph name: uni0407\tContours detected: 44\tExpected: 3\n\n\t- Glyph name: uni0408\tContours detected: 11\tExpected: 1\n\n\t- Glyph name: uni0409\tContours detected: 72\tExpected: 2\n\n\t- Glyph name: uni040A\tContours detected: 178\tExpected: 2\n\n\t- Glyph name: uni040B\tContours detected: 50\tExpected: 1\n\n\t- Glyph name: uni040C\tContours detected: 46\tExpected: 2\n\n\t- Glyph name: uni040D\tContours detected: 19\tExpected: 2\n\n\t- Glyph name: uni040E\tContours detected: 23\tExpected: 2\n\n\t- Glyph name: uni040F\tContours detected: 84\tExpected: 1\n\n\t- Glyph name: uni0410\tContours detected: 93\tExpected: 2\n\n\t- Glyph name: uni0411\tContours detected: 40\tExpected: 2\n\n\t- Glyph name: uni0412\tContours detected: 126\tExpected: 3\n\n\t- Glyph name: uni0413\tContours detected: 11\tExpected: 1\n\n\t- Glyph name: uni0414\tContours detected: 69\tExpected: 2\n\n\t- Glyph name: uni0415\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: uni0416\tContours detected: 29\tExpected: 1\n\n\t- Glyph name: uni0417\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: uni0418\tContours detected: 17\tExpected: 1\n\n\t- Glyph name: uni0419\tContours detected: 24\tExpected: 2\n\n\t- Glyph name: uni041A\tContours detected: 44\tExpected: 1\n\n\t- Glyph name: uni041B\tContours detected: 32\tExpected: 1\n\n\t- Glyph name: uni041C\tContours detected: 12\tExpected: 1\n\n\t- Glyph name: uni041D\tContours detected: 32\tExpected: 1\n\n\t- Glyph name: uni041E\tContours detected: 111\tExpected: 2\n\n\t- Glyph name: uni041F\tContours detected: 191\tExpected: 1\n\n\t- Glyph name: uni0420\tContours detected: 10\tExpected: 1 or 2\n\n\t- Glyph name: uni0421\tContours detected: 13\tExpected: 1\n\n\t- Glyph name: uni0422\tContours detected: 33\tExpected: 1\n\n\t- Glyph name: uni0423\tContours detected: 16\tExpected: 1\n\n\t- Glyph name: uni0424\tContours detected: 59\tExpected: 3\n\n\t- Glyph name: uni0425\tContours detected: 28\tExpected: 1\n\n\t- Glyph name: uni0426\tContours detected: 17\tExpected: 1\n\n\t- Glyph name: uni0427\tContours detected: 75\tExpected: 1\n\n\t- Glyph name: uni0428\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: uni0429\tContours detected: 28\tExpected: 1\n\n\t- Glyph name: uni042A\tContours detected: 71\tExpected: 2\n\n\t- Glyph name: uni042B\tContours detected: 82\tExpected: 3\n\n\t- Glyph name: uni042C\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: uni042D\tContours detected: 17\tExpected: 1\n\n\t- Glyph name: uni042E\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: uni042F\tContours detected: 46\tExpected: 2\n\n\t- Glyph name: uni0430\tContours detected: 20\tExpected: 2\n\n\t- Glyph name: uni0431\tContours detected: 15\tExpected: 2\n\n\t- Glyph name: uni0432\tContours detected: 48\tExpected: 3\n\n\t- Glyph name: uni0433\tContours detected: 49\tExpected: 1\n\n\t- Glyph name: uni0434\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: uni0435\tContours detected: 21\tExpected: 2\n\n\t- Glyph name: uni0436\tContours detected: 29\tExpected: 1\n\n\t- Glyph name: uni0437\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: uni0438\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0439\tContours detected: 18\tExpected: 2\n\n\t- Glyph name: uni043A\tContours detected: 13\tExpected: 1\n\n\t- Glyph name: uni043B\tContours detected: 19\tExpected: 1\n\n\t- Glyph name: uni043C\tContours detected: 33\tExpected: 1\n\n\t- Glyph name: uni043D\tContours detected: 80\tExpected: 1\n\n\t- Glyph name: uni043E\tContours detected: 95\tExpected: 2\n\n\t- Glyph name: uni043F\tContours detected: 112\tExpected: 1\n\n\t- Glyph name: uni0440\tContours detected: 37\tExpected: 2\n\n\t- Glyph name: uni0441\tContours detected: 31\tExpected: 1\n\n\t- Glyph name: uni0442\tContours detected: 66\tExpected: 1\n\n\t- Glyph name: uni0443\tContours detected: 38\tExpected: 1\n\n\t- Glyph name: uni0444\tContours detected: 36\tExpected: 3\n\n\t- Glyph name: uni0445\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: uni0446\tContours detected: 25\tExpected: 1\n\n\t- Glyph name: uni0447\tContours detected: 44\tExpected: 1\n\n\t- Glyph name: uni0448\tContours detected: 85\tExpected: 1\n\n\t- Glyph name: uni0449\tContours detected: 67\tExpected: 1\n\n\t- Glyph name: uni044A\tContours detected: 61\tExpected: 2\n\n\t- Glyph name: uni044B\tContours detected: 42\tExpected: 3\n\n\t- Glyph name: uni044C\tContours detected: 75\tExpected: 2\n\n\t- Glyph name: uni044D\tContours detected: 26\tExpected: 1\n\n\t- Glyph name: uni044E\tContours detected: 14\tExpected: 2\n\n\t- Glyph name: uni044F\tContours detected: 14\tExpected: 2\n\n\t- Glyph name: uni0450\tContours detected: 23\tExpected: 3\n\n\t- Glyph name: uni0451\tContours detected: 34\tExpected: 4\n\n\t- Glyph name: uni0452\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni0453\tContours detected: 52\tExpected: 2\n\n\t- Glyph name: uni0454\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: uni0455\tContours detected: 18\tExpected: 1\n\n\t- Glyph name: uni0456\tContours detected: 31\tExpected: 2\n\n\t- Glyph name: uni0457\tContours detected: 47\tExpected: 3\n\n\t- Glyph name: uni0458\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: uni0459\tContours detected: 40\tExpected: 2\n\n\t- Glyph name: uni045A\tContours detected: 29\tExpected: 2\n\n\t- Glyph name: uni045B\tContours detected: 24\tExpected: 1\n\n\t- Glyph name: uni045C\tContours detected: 16\tExpected: 2\n\n\t- Glyph name: uni045D\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni045E\tContours detected: 54\tExpected: 2\n\n\t- Glyph name: uni045F\tContours detected: 68\tExpected: 1 or 2\n\n\t- Glyph name: uni0462\tContours detected: 16\tExpected: 2\n\n\t- Glyph name: uni0463\tContours detected: 27\tExpected: 2\n\n\t- Glyph name: uni046A\tContours detected: 90\tExpected: 2\n\n\t- Glyph name: uni046B\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni0472\tContours detected: 78\tExpected: 3\n\n\t- Glyph name: uni0473\tContours detected: 35\tExpected: 3\n\n\t- Glyph name: uni0474\tContours detected: 22\tExpected: 1\n\n\t- Glyph name: uni0475\tContours detected: 35\tExpected: 1\n\n\t- Glyph name: uni0490\tContours detected: 24\tExpected: 1\n\n\t- Glyph name: uni0491\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni0492\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: uni0493\tContours detected: 44\tExpected: 1\n\n\t- Glyph name: uni0494\tContours detected: 118\tExpected: 1\n\n\t- Glyph name: uni0495\tContours detected: 88\tExpected: 1\n\n\t- Glyph name: uni0496\tContours detected: 38\tExpected: 1 or 2\n\n\t- Glyph name: uni0497\tContours detected: 59\tExpected: 1 or 2\n\n\t- Glyph name: uni0498\tContours detected: 16\tExpected: 1 or 2\n\n\t- Glyph name: uni0499\tContours detected: 25\tExpected: 1 or 2\n\n\t- Glyph name: uni049A\tContours detected: 13\tExpected: 1 or 2\n\n\t- Glyph name: uni049B\tContours detected: 11\tExpected: 1 or 2\n\n\t- Glyph name: uni049C\tContours detected: 131\tExpected: 1\n\n\t- Glyph name: uni049D\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni04A0\tContours detected: 138\tExpected: 1\n\n\t- Glyph name: uni04A1\tContours detected: 54\tExpected: 1\n\n\t- Glyph name: uni04A2\tContours detected: 71\tExpected: 1 or 2\n\n\t- Glyph name: uni04A3\tContours detected: 13\tExpected: 1 or 2\n\n\t- Glyph name: uni04A4\tContours detected: 36\tExpected: 1\n\n\t- Glyph name: uni04A5\tContours detected: 53\tExpected: 1\n\n\t- Glyph name: uni04AA\tContours detected: 20\tExpected: 1 or 2\n\n\t- Glyph name: uni04AB\tContours detected: 59\tExpected: 1 or 2\n\n\t- Glyph name: uni04B6\tContours detected: 16\tExpected: 1 or 2\n\n\t- Glyph name: uni04B7\tContours detected: 24\tExpected: 1 or 2\n\n\t- Glyph name: uni04B8\tContours detected: 59\tExpected: 1\n\n\t- Glyph name: uni04B9\tContours detected: 29\tExpected: 1\n\n\t- Glyph name: uni04BA\tContours detected: 113\tExpected: 1\n\n\t- Glyph name: uni04BB\tContours detected: 63\tExpected: 1\n\n\t- Glyph name: uni04C0\tContours detected: 31\tExpected: 1\n\n\t- Glyph name: uni04C1\tContours detected: 36\tExpected: 2\n\n\t- Glyph name: uni04C2\tContours detected: 45\tExpected: 2\n\n\t- Glyph name: uni04CB\tContours detected: 102\tExpected: 1 or 2\n\n\t- Glyph name: uni04CF\tContours detected: 51\tExpected: 1\n\n\t- Glyph name: uni04D0\tContours detected: 100\tExpected: 3\n\n\t- Glyph name: uni04D1\tContours detected: 36\tExpected: 3\n\n\t- Glyph name: uni04D2\tContours detected: 106\tExpected: 4\n\n\t- Glyph name: uni04D3\tContours detected: 33\tExpected: 4\n\n\t- Glyph name: uni04D4\tContours detected: 44\tExpected: 2\n\n\t- Glyph name: uni04D5\tContours detected: 27\tExpected: 3\n\n\t- Glyph name: uni04D6\tContours detected: 16\tExpected: 2\n\n\t- Glyph name: uni04D7\tContours detected: 37\tExpected: 3\n\n\t- Glyph name: uni04D8\tContours detected: 29\tExpected: 2\n\n\t- Glyph name: uni04D9\tContours detected: 21\tExpected: 2\n\n\t- Glyph name: uni04DC\tContours detected: 42\tExpected: 3\n\n\t- Glyph name: uni04DD\tContours detected: 42\tExpected: 3\n\n\t- Glyph name: uni04DE\tContours detected: 33\tExpected: 3\n\n\t- Glyph name: uni04DF\tContours detected: 22\tExpected: 3\n\n\t- Glyph name: uni04E2\tContours detected: 18\tExpected: 2\n\n\t- Glyph name: uni04E3\tContours detected: 3\tExpected: 2\n\n\t- Glyph name: uni04E4\tContours detected: 30\tExpected: 3\n\n\t- Glyph name: uni04E5\tContours detected: 15\tExpected: 3\n\n\t- Glyph name: uni04E6\tContours detected: 124\tExpected: 4\n\n\t- Glyph name: uni04E7\tContours detected: 108\tExpected: 4\n\n\t- Glyph name: uni04E8\tContours detected: 9\tExpected: 3\n\n\t- Glyph name: uni04E9\tContours detected: 35\tExpected: 3\n\n\t- Glyph name: uni04EE\tContours detected: 17\tExpected: 2\n\n\t- Glyph name: uni04EF\tContours detected: 39\tExpected: 2\n\n\t- Glyph name: uni04F0\tContours detected: 29\tExpected: 3\n\n\t- Glyph name: uni04F1\tContours detected: 51\tExpected: 3\n\n\t- Glyph name: uni04F2\tContours detected: 42\tExpected: 3\n\n\t- Glyph name: uni04F3\tContours detected: 64\tExpected: 3\n\n\t- Glyph name: uni04F4\tContours detected: 88\tExpected: 3\n\n\t- Glyph name: uni04F5\tContours detected: 57\tExpected: 3\n\n\t- Glyph name: uni04F6\tContours detected: 8\tExpected: 1 or 2\n\n\t- Glyph name: uni04F7\tContours detected: 52\tExpected: 1 or 2\n\n\t- Glyph name: uni04F8\tContours detected: 95\tExpected: 5\n\n\t- Glyph name: uni04F9\tContours detected: 55\tExpected: 5\n\n\t- Glyph name: uni051A\tContours detected: 24\tExpected: 2\n\n\t- Glyph name: uni051B\tContours detected: 30\tExpected: 2\n\n\t- Glyph name: uni051C\tContours detected: 50\tExpected: 1\n\n\t- Glyph name: uni051D\tContours detected: 63\tExpected: 1\n\n\t- Glyph name: uni0524\tContours detected: 48\tExpected: 1\n\n\t- Glyph name: uni0525\tContours detected: 23\tExpected: 1\n\n\t- Glyph name: uni1E9E\tContours detected: 78\tExpected: 1\n\n\t- Glyph name: uni20AA\tContours detected: 25\tExpected: 2\n\n\t- Glyph name: uni20AE\tContours detected: 13\tExpected: 1\n\n\t- Glyph name: uni20B4\tContours detected: 62\tExpected: 1 or 2\n\n\t- Glyph name: uni20B8\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: uni20B9\tContours detected: 16\tExpected: 1\n\n\t- Glyph name: uni20BD\tContours detected: 101\tExpected: 2\n\n\t- Glyph name: uni2116\tContours detected: 115\tExpected: 3 or 4\n\n\t- Glyph name: uni2206\tContours detected: 61\tExpected: 2\n\n\t- Glyph name: uni2215\tContours detected: 38\tExpected: 1\n\n\t- Glyph name: uogonek\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: uring\tContours detected: 48\tExpected: 3\n\n\t- Glyph name: utilde\tContours detected: 49\tExpected: 2\n\n\t- Glyph name: v\tContours detected: 16\tExpected: 1\n\n\t- Glyph name: w\tContours detected: 63\tExpected: 1\n\n\t- Glyph name: wacute\tContours detected: 66\tExpected: 2\n\n\t- Glyph name: wcircumflex\tContours detected: 75\tExpected: 2\n\n\t- Glyph name: wdieresis\tContours detected: 76\tExpected: 3\n\n\t- Glyph name: wgrave\tContours detected: 65\tExpected: 2\n\n\t- Glyph name: x\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: y\tContours detected: 24\tExpected: 1\n\n\t- Glyph name: yacute\tContours detected: 27\tExpected: 2\n\n\t- Glyph name: ycircumflex\tContours detected: 36\tExpected: 2\n\n\t- Glyph name: ydieresis\tContours detected: 37\tExpected: 3\n\n\t- Glyph name: yen\tContours detected: 30\tExpected: 1 or 2\n\n\t- Glyph name: ygrave\tContours detected: 26\tExpected: 2\n\n\t- Glyph name: z\tContours detected: 26\tExpected: 1\n\n\t- Glyph name: zacute\tContours detected: 29\tExpected: 2\n\n\t- Glyph name: zcaron\tContours detected: 35\tExpected: 2\n\n\t- Glyph name: zdotaccent\tContours detected: 36\tExpected: 2\n\n\t- Glyph name: zero\tContours detected: 83\tExpected: 2 or 3\n [code: contour-count]", "status": "WARN", "traceback": null}], "rationale": "\n Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only\n be constructured in a handful of ways. This means a glyph's contour count\n will only differ slightly amongst different fonts, e.g a 'g' could either\n be 2 or 3 contours, depending on whether its double story or single story.\n\n However, a quotedbl should have 2 contours, unless the font belongs\n to a display family.\n\n This check currently does not cover variable fonts because there's plenty\n of alternative ways of constructing glyphs with multiple outlines for each\n feature in a VarFont. The expected contour count data for this check is\n currently optimized for the typical construction of glyphs in static fonts.\n ", "result": "WARN"}, {"description": "Does the font contain a soft hyphen?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n The 'Soft Hyphen' character (codepoint 0x00AD) is used to mark\n a hyphenation possibility within a word in the absence of or\n overriding dictionary hyphenation.\n\n It is sometimes designed empty with no width (such as a control character),\n sometimes the same as the traditional hyphen, sometimes double encoded with\n the hyphen.\n\n That being said, it is recommended to not include it in the font at all,\n because discretionary hyphenation should be handled at the level of the\n shaping engine, not the font. Also, even if present, the software would\n not display that character.\n\n More discussion at:\n https://typedrawers.com/discussion/2046/special-dash-things-softhyphen-horizontalbar\n ", "result": "PASS"}, {"description": "Does the font contain chws and vchw features?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cjk_font", "status": "SKIP", "traceback": null}], "rationale": "\n The W3C recommends the addition of chws and vchw features to CJK fonts\n to enhance the spacing of glyphs in environments which do not fully support\n JLREQ layout rules.\n\n The chws_tool utility (https://github.com/googlefonts/chws_tool) can be used\n to add these features automatically.\n ", "result": "SKIP"}, {"description": "Ensure component transforms do not perform scaling or rotation.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No glyphs had components with scaling or rotation", "status": "PASS", "traceback": null}], "rationale": "\n Some families have glyphs which have been constructed by using\n transformed components e.g the 'u' being constructed from a flipped 'n'.\n\n From a designers point of view, this sounds like a win (less work).\n However, such approaches can lead to rasterization issues, such as\n having the 'u' not sitting on the baseline at certain sizes after\n running the font through ttfautohint.\n\n Other issues are outlines that end up reversed when only one dimension\n is flipped while the other isn't.\n\n As of July 2019, Marc Foley observed that ttfautohint assigns cvt values\n to transformed glyphs as if they are not transformed and the result is\n they render very badly, and that vttLib does not support flipped components.\n\n When building the font with fontmake, the problem can be fixed by adding\n this to the command line:\n\n --filter DecomposeTransformedComponentsFilter\n ", "result": "PASS"}, {"description": "Ensure no GPOS7 lookups are present.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has no GPOS7 lookups", "status": "PASS", "traceback": null}], "rationale": "\n Versions of fonttools >=4.14.0 (19 August 2020) perform an optimisation on\n chained contextual lookups, expressing GSUB6 as GSUB5 and GPOS8 and GPOS7\n where possible (when there are no suffixes/prefixes for all rules in\n the lookup).\n\n However, makeotf has never generated these lookup types and they are rare\n in practice. Perhaps before of this, Mac's CoreText shaper does not correctly\n interpret GPOS7, meaning that these lookups will be ignored by the shaper,\n and fonts containing these lookups will have unintended positioning errors.\n\n To fix this warning, rebuild the font with a recent version of fonttools.\n ", "result": "PASS", "severity": 9}, {"description": "Ensure that the font can be rasterized by FreeType.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font can be rasterized by FreeType.", "status": "PASS", "traceback": null}], "rationale": "\n Malformed fonts can cause FreeType to crash.\n ", "result": "PASS", "severity": 10}, {"description": "Font has the proper sfntVersion value?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has the correct sfntVersion value.", "status": "PASS", "traceback": null}], "rationale": "\n OpenType fonts that contain TrueType outlines should use the value of 0x00010000\n for the sfntVersion. OpenType fonts containing CFF data (version 1 or 2) should\n use 0x4F54544F ('OTTO', when re-interpreted as a Tag) for sfntVersion.\n\n Fonts with the wrong sfntVersion value are rejected by FreeType.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/otff#table-directory\n ", "result": "PASS", "severity": 10}, {"description": "Space and non-breaking space have the same width?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Space and non-breaking space have the same width.", "status": "PASS", "traceback": null}], "rationale": "\n If the space and nbspace glyphs have different widths, then Google Workspace\n has problems with the font.\n\n The nbspace is used to replace the space character in multiple situations in\n documents; such as the space before punctuation in languages that do that. It\n avoids the punctuation to be separated from the last word and go to next line.\n\n This is automatic substitution by the text editors, not by fonts. It's also used\n by designers in text composition practice to create nicely shaped paragraphs.\n If the space and the nbspace are not the same width, it breaks the text\n composition of documents.\n ", "result": "PASS"}, {"description": "Detect any interpolation issues in the font.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n When creating a variable font, the designer must make sure that corresponding\n paths have the same start points across masters, as well as that corresponding\n component shapes are placed in the same order within a glyph across masters.\n If this is not done, the glyph will not interpolate correctly.\n\n Here we check for the presence of potential interpolation errors using the\n fontTools.varLib.interpolatable module.\n ", "result": "SKIP", "severity": 4}, {"description": "Check math signs have the same width.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The most common width is 538 among a set of 2 math glyphs.\nThe following math glyphs have a different width, though:\n\nWidth = 594:\nplus\n\nWidth = 563:\nequal\n\nWidth = 564:\nlogicalnot\n\nWidth = 576:\nplusminus\n\nWidth = 639:\nmultiply\n\nWidth = 517:\ndivide\n\nWidth = 642:\nminus\n\nWidth = 551:\napproxequal, notequal\n\nWidth = 556:\ngreaterequal, lessequal\n [code: width-outliers]", "status": "WARN", "traceback": null}], "rationale": "\n It is a common practice to have math signs sharing the same width\n (preferably the same width as tabular figures accross the entire font family).\n\n This probably comes from the will to avoid additional tabular math signs\n knowing that their design can easily share the same width.\n ", "result": "WARN"}, {"description": "Checking Vertical Metric Linegaps.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 sTypoLineGap and hhea lineGap are both 0.", "status": "PASS", "traceback": null}], "rationale": "\n The LineGap value is a space added to the line height created by the union\n of the (typo/hhea)Ascender and (typo/hhea)Descender. It is handled differently\n according to the environment.\n\n This leading value will be added above the text line in most desktop apps.\n It will be shared above and under in web browsers, and ignored in Windows\n if Use_Typo_Metrics is disabled.\n\n For better linespacing consistency across platforms,\n (typo/hhea)LineGap values must be 0.\n ", "result": "PASS"}, {"description": "Checking STAT table entries in static fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n Adobe feature syntax allows for the definition of a STAT table. Fonts built\n with a hand-coded STAT table in feature syntax may be built either as static\n or variable, but will end up with the same STAT table.\n\n This is a problem, because a STAT table which works on variable fonts\n will not be appropriate for static instances. The examples in the OpenType spec\n of non-variable fonts with a STAT table show that the table entries must be\n restricted to those entries which refer to the static font's position in\n the designspace. i.e. a Regular weight static should only have the following\n entry for the weight axis:\n\n \n \n \n \n\n However, if the STAT table intended for a variable font is compiled into a\n static, it will have many entries for this axis. In this case, Windows will\n read the first entry only, causing all instances to report themselves\n as \"Thin Condensed\".\n ", "result": "SKIP"}, {"description": "Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Lcaron, dcaron, lcaron, tcaron should NOT be composed with quoteright\n or quotesingle or comma or caron(comb). It should be composed with a\n distinctive glyph which doesn't look like an apostrophe.\n\n Source:\n https://ilovetypography.com/2009/01/24/on-diacritics/\n http://diacritics.typo.cz/index.php?id=5\n https://www.typotheque.com/articles/lcaron\n ", "result": "PASS"}], "key": ["", null, null], "result": {"INFO": 2, "PASS": 25, "SKIP": 7, "WARN": 2}}, {"checks": [{"description": "Is the CFF subr/gsubr call depth > 10?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff", "status": "SKIP", "traceback": null}], "rationale": "\n Per \"The Type 2 Charstring Format, Technical Note #5177\",\n the \"Subr nesting, stack limit\" is 10.\n ", "result": "SKIP"}, {"description": "Is the CFF2 subr/gsubr call depth > 10?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff2", "status": "SKIP", "traceback": null}], "rationale": "\n Per \"The CFF2 CharString Format\", the \"Subr nesting, stack limit\" is 10.\n ", "result": "SKIP"}, {"description": "Does the font use deprecated CFF operators or operations?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff", "status": "SKIP", "traceback": null}], "rationale": "\n The 'dotsection' operator and the use of 'endchar' to build accented characters\n from the Adobe Standard Encoding Character Set (\"seac\") are deprecated in CFF.\n Adobe recommends repairing any fonts that use these, especially endchar-as-seac,\n because a rendering issue was discovered in Microsoft Word with a font that\n makes use of this operation. The check treats that usage as a FAIL.\n There are no known ill effects of using dotsection, so that check is a WARN.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"SKIP": 3}}, {"checks": [{"description": "Fonts have equal unicode encodings?", "key": ["", "", []], "logs": [{"message": "Fonts have equal unicode encodings.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Make sure all font files have the same version value.", "key": ["", "", []], "logs": [{"message": "All font files have the same version.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking unitsPerEm value is reasonable.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Filtered: Google Fonts has a stricter policy which is enforced by com.google.fonts/check/unitsperem_strict", "status": "SKIP", "traceback": null}], "rationale": "\n According to the OpenType spec:\n\n The value of unitsPerEm at the head table must be a value\n between 16 and 16384. Any value in this range is valid.\n\n In fonts that have TrueType outlines, a power of 2 is recommended\n as this allows performance optimizations in some rasterizers.\n\n But 1000 is a commonly used value. And 2000 may become\n increasingly more common on Variable Fonts.\n ", "result": "SKIP"}, {"description": "Checking font version fields (head and name table).", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All font version fields match.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking head.macStyle value.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "head macStyle ITALIC bit is properly set.", "status": "PASS", "traceback": null}, {"message": "head macStyle BOLD bit is properly set.", "status": "PASS", "traceback": null}], "rationale": "\n The values of the flags on the macStyle entry on the 'head' OpenType table\n that describe whether a font is bold and/or italic must be coherent with the\n actual style of the font as inferred by its filename.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3, "SKIP": 1}}, {"checks": [{"description": "Fonts have consistent PANOSE proportion?", "key": ["", "", []], "logs": [{"message": "Fonts have consistent PANOSE proportion.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Fonts have consistent PANOSE family type?", "key": ["", "", []], "logs": [{"message": "Fonts have consistent PANOSE family type.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check that OS/2.fsSelection bold & italic settings are unique for each NameID1", "key": ["", "", []], "logs": [{"message": "The OS/2.fsSelection bold & italic settings were unique within each compatible family group.", "status": "PASS", "traceback": null}], "rationale": "\n Per the OpenType spec: name ID 1 'is used in combination with Font Subfamily\n name (name ID 2), and should be shared among at most four fonts that differ\n only in weight or style.\n\n This four-way distinction should also be reflected in the OS/2.fsSelection\n field, using bits 0 and 5.\n ", "result": "PASS"}, {"description": "Check if OS/2 xAvgCharWidth is correct.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 xAvgCharWidth value is correct.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check if OS/2 fsSelection matches head macStyle bold and italic bits.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The OS/2.fsSelection and head.macStyle bold and italic settings match.", "status": "PASS", "traceback": null}], "rationale": "\n The bold and italic bits in OS/2.fsSelection must match the bold and italic\n bits in head.macStyle per the OpenType spec.\n ", "result": "PASS"}, {"description": "Check code page character ranges", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "At least one code page is defined.", "status": "PASS", "traceback": null}], "rationale": "\n At least some programs (such as Word and Sublime Text) under Windows 7\n do not recognize fonts unless code page bits are properly set on the\n ulCodePageRange1 (and/or ulCodePageRange2) fields of the OS/2 table.\n\n More specifically, the fonts are selectable in the font menu, but whichever\n Windows API these applications use considers them unsuitable for any\n character set, so anything set in these fonts is rendered with Arial as a\n fallback font.\n\n This check currently does not identify which code pages should be set.\n Auto-detecting coverage is not trivial since the OpenType specification\n leaves the interpretation of whether a given code page is \"functional\"\n or not open to the font developer to decide.\n\n So here we simply detect as a FAIL when a given font has no code page\n declared at all.\n ", "result": "PASS"}, {"description": "Checking OS/2 achVendID against configuration.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Add the `vendor_id` key to a `fontbakery.yaml` file on your font project directory to enable this check.\nYou'll also need to use the `--configuration` flag when invoking fontbakery.", "status": "SKIP", "traceback": null}], "rationale": "\n When a font project's Vendor ID is specified explicitly on FontBakery's\n configuration file, all binaries must have a matching vendor identifier\n value in the OS/2 table.\n ", "result": "SKIP"}, {"description": "Checking OS/2 fsSelection value.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 fsSelection REGULAR bit is properly set.", "status": "PASS", "traceback": null}, {"message": "OS/2 fsSelection ITALIC bit is properly set.", "status": "PASS", "traceback": null}, {"message": "OS/2 fsSelection BOLD bit is properly set.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 7, "SKIP": 1}}, {"checks": [{"description": "Fonts have consistent underline thickness?", "key": ["", "", []], "logs": [{"message": "Fonts have consistent underline thickness.", "status": "PASS", "traceback": null}], "rationale": "\n Dave C Lemon (Adobe Type Team) recommends setting the underline thickness to be\n consistent across the family.\n\n If thicknesses are not family consistent, words set on the same line which have\n different styles look strange.\n ", "result": "PASS"}, {"description": "Font has correct post table version?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has an acceptable post format 2.0 table version.", "status": "PASS", "traceback": null}], "rationale": "\n Format 2.5 of the 'post' table was deprecated in OpenType 1.3 and\n should not be used.\n\n According to Thomas Phinney, the possible problem with post format 3\n is that under the right combination of circumstances, one can generate\n PDF from a font with a post format 3 table, and not have accurate backing\n store for any text that has non-default glyphs for a given codepoint.\n\n It will look fine but not be searchable. This can affect Latin text with\n high-end typography, and some complex script writing systems, especially\n with higher-quality fonts. Those circumstances generally involve creating\n a PDF by first printing a PostScript stream to disk, and then creating a\n PDF from that stream without reference to the original source document.\n There are some workflows where this applies,but these are not common\n use cases.\n\n Apple recommends against use of post format version 4 as \"no longer\n necessary and should be avoided\". Please see the Apple TrueType reference\n documentation for additional details.\n\n https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6post.html\n\n Acceptable post format versions are 2 and 3 for TTF and OTF CFF2 builds,\n and post format 3 for CFF builds.\n ", "result": "PASS"}, {"description": "Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Value of post.italicAngle is 0.0 with style=\"Regular\".", "status": "PASS", "traceback": null}], "rationale": "\n The 'post' table italicAngle property should be a reasonable amount, likely\n not more than 30\u00b0. Note that in the OpenType specification, the value is\n negative for a rightward lean.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/post\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "Verify that each group of fonts with the same nameID 1 has maximum of 4 fonts.", "key": ["", "", []], "logs": [{"message": "There were no more than 4 fonts per family name.", "status": "PASS", "traceback": null}], "rationale": "\n Per the OpenType spec:\n\n 'The Font Family name [...] should be shared among at most four fonts that\n differ only in weight or style [...]'\n ", "result": "PASS"}, {"description": "Verify that family names in the name table are consistent across all fonts in the family. Checks Typographic Family name (nameID 16) if present, otherwise uses Font Family name (nameID 1)", "key": ["", "", []], "logs": [{"message": "Font family names are consistent across the family.", "status": "PASS", "traceback": null}], "rationale": "\n Per the OpenType spec:\n * \"...many existing applications that use this pair of names assume that a\n Font Family name is shared by at most four fonts that form a font\n style-linking group\"\n * \"For extended typographic families that includes fonts other than the\n four basic styles(regular, italic, bold, bold italic), it is strongly\n recommended that name IDs 16 and 17 be used in fonts to create an\n extended, typographic grouping.\"\n * \"If name ID 16 is absent, then name ID 1 is considered to be the\n typographic family name.\"\n\n https://learn.microsoft.com/en-us/typography/opentype/spec/name\n\n Fonts within a font family all must have consistent names\n in the Typographic Family name (nameID 16)\n or Font Family name (nameID 1), depending on which it uses.\n\n Inconsistent font/typographic family names across fonts in a family\n can result in unexpected behaviors, such as broken style linking.\n ", "result": "PASS"}, {"description": "Check name table for empty records.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No empty name table records found.", "status": "PASS", "traceback": null}], "rationale": "\n Check the name table for empty records,\n as this can cause problems in Adobe apps.\n ", "result": "PASS"}, {"description": "Description strings in the name table must not contain copyright info.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Description strings in the name table do not contain any copyright string.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking correctness of monospaced metadata.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font is not monospaced and all related metadata look good. [code: good]", "status": "PASS", "traceback": null}], "rationale": "\n There are various metadata in the OpenType spec to specify if a font is\n monospaced or not. If the font is not truly monospaced, then no monospaced\n metadata should be set (as sometimes they mistakenly are...)\n\n Requirements for monospace fonts:\n\n * post.isFixedPitch - \"Set to 0 if the font is proportionally spaced,\n non-zero if the font is not proportionally spaced (monospaced)\"\n (https://www.microsoft.com/typography/otspec/post.htm)\n\n * hhea.advanceWidthMax must be correct, meaning no glyph's width value\n is greater. (https://www.microsoft.com/typography/otspec/hhea.htm)\n\n * OS/2.panose.bProportion must be set to 9 (monospace) on latin text fonts.\n\n * OS/2.panose.bSpacing must be set to 3 (monospace) on latin hand written\n or latin symbol fonts.\n\n * Spec says: \"The PANOSE definition contains ten digits each of which currently\n describes up to sixteen variations. Windows uses bFamilyType, bSerifStyle\n and bProportion in the font mapper to determine family type. It also uses\n bProportion to determine if the font is monospaced.\"\n (https://www.microsoft.com/typography/otspec/os2.htm#pan\n https://monotypecom-test.monotype.de/services/pan2)\n\n * OS/2.xAvgCharWidth must be set accurately.\n \"OS/2.xAvgCharWidth is used when rendering monospaced fonts,\n at least by Windows GDI\"\n (http://typedrawers.com/discussion/comment/15397/#Comment_15397)\n\n Also we should report an error for glyphs not of average width.\n\n\n Please also note:\n\n Thomas Phinney told us that a few years ago (as of December 2019), if you gave\n a font a monospace flag in Panose, Microsoft Word would ignore the actual\n advance widths and treat it as monospaced.\n\n Source: https://typedrawers.com/discussion/comment/45140/#Comment_45140\n ", "result": "PASS"}, {"description": "Does full font name begin with the font family name?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Full font name begins with the font family name.", "status": "PASS", "traceback": null}], "rationale": "\n The FULL_FONT_NAME entry in the \u2018name\u2019 table should start with the same string\n as the Family Name (FONT_FAMILY_NAME, TYPOGRAPHIC_FAMILY_NAME or\n WWS_FAMILY_NAME).\n\n If the Family Name is not included as the first part of the Full Font Name, and\n the user embeds the font in a document using a Microsoft Office app, the app\n will fail to render the font when it opens the document again.\n\n NOTE: Up until version 1.5, the OpenType spec included the following exception\n in the definition of Full Font Name:\n\n \"An exception to the [above] definition of Full font name is for Microsoft\n platform strings for CFF OpenType fonts: in this case, the Full font name\n string must be identical to the PostScript FontName in the CFF Name INDEX.\"\n\n https://docs.microsoft.com/en-us/typography/opentype/otspec150/name#name-ids\n ", "result": "PASS"}, {"description": "PostScript name follows OpenType specification requirements?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "PostScript name follows requirements. [code: psname-ok]", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font follows the family naming recommendations?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font follows the family naming recommendations.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "CFF table FontName must match name table ID 6 (PostScript name).", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff", "status": "SKIP", "traceback": null}], "rationale": "\n The PostScript name entries in the font's 'name' table should match\n the FontName string in the 'CFF ' table.\n\n The 'CFF ' table has a lot of information that is duplicated in other tables.\n This information should be consistent across tables, because there's\n no guarantee which table an app will get the data from.\n ", "result": "SKIP"}, {"description": "Name table ID 6 (PostScript name) must be consistent across platforms.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Entries in the \"name\" table for ID 6 (PostScript name) are consistent.", "status": "PASS", "traceback": null}], "rationale": "\n The PostScript name entries in the font's 'name' table should be\n consistent across platforms.\n\n This is the TTF/CFF2 equivalent of the CFF 'name/postscript_vs_cff' check.\n ", "result": "PASS"}, {"description": "Check name table IDs 1, 2, 16, 17 to conform to Italic style.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font is not Italic.", "status": "SKIP", "traceback": null}], "rationale": "\n This check ensures that several entries in the name table\n conform to the font's Upright or Italic style,\n namely IDs 1 & 2 as well as 16 & 17 if they're present.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"PASS": 9, "SKIP": 2}}, {"checks": [{"description": "Does the number of glyphs in the loca table match the maxp table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "'loca' table matches numGlyphs in 'maxp' table.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check hhea.caretSlopeRise and hhea.caretSlopeRun", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "hhea.caretSlopeRise and hhea.caretSlopeRun match with post.italicAngle.", "status": "PASS", "traceback": null}], "rationale": "\n Checks whether hhea.caretSlopeRise and hhea.caretSlopeRun\n match with post.italicAngle.\n\n For Upright fonts, you can set hhea.caretSlopeRise to 1\n and hhea.caretSlopeRun to 0.\n\n For Italic fonts, you can set hhea.caretSlopeRise to head.unitsPerEm\n and calculate hhea.caretSlopeRun like this:\n round(math.tan(\n math.radians(-1 * font[\"post\"].italicAngle)) * font[\"head\"].unitsPerEm)\n\n This check allows for a 0.1\u00b0 rounding difference between the Italic angle\n as calculated by the caret slope and post.italicAngle\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 2}}, {"checks": [{"description": "Does the font have a DSIG table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "ok", "status": "PASS", "traceback": null}], "rationale": "\n Microsoft Office 2013 and below products expect fonts to have a digital\n signature declared in a DSIG table in order to implement OpenType features.\n The EOL date for Microsoft Office 2013 products is 4/11/2023.\n This issue does not impact Microsoft Office 2016 and above products.\n\n As we approach the EOL date, it is now considered better to\n completely remove the table.\n\n But if you still want your font to support OpenType features on Office 2013,\n then you may find it handy to add a fake signature on a placeholder DSIG table\n by running one of the helper scripts provided at\n https://github.com/googlefonts/gftools\n\n Reference: https://github.com/fonttools/fontbakery/issues/1845\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Check glyphs in mark glyph class are non-spacing.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not has spacing glyphs in the GDEF mark glyph class.", "status": "PASS", "traceback": null}], "rationale": "\n Glyphs in the GDEF mark glyph class should be non-spacing.\n\n Spacing glyphs in the GDEF mark glyph class may have incorrect anchor\n positioning that was only intended for building composite glyphs during design.\n ", "result": "PASS"}, {"description": "Check mark characters are in GDEF mark glyph class.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not have mark characters not in the GDEF mark glyph class.", "status": "PASS", "traceback": null}], "rationale": "\n Mark characters should be in the GDEF mark glyph class.\n ", "result": "PASS"}, {"description": "Check GDEF mark glyph class doesn't have characters that are not marks.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not have non-mark characters in the GDEF mark glyph class.", "status": "PASS", "traceback": null}], "rationale": "\n Glyphs in the GDEF mark glyph class become non-spacing and may be repositioned\n if they have mark anchors.\n\n Only combining mark glyphs should be in that class. Any non-mark glyph\n must not be in that class, in particular spacing glyphs.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "Does GPOS table have kerning information? This check skips monospaced fonts as defined by post.isFixedPitch value", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "GPOS table check for kerning information passed.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Is there a usable \"kern\" table declared in the font?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not declare an optional \"kern\" table.", "status": "PASS", "traceback": null}], "rationale": "\n Even though all fonts should have their kerning implemented in the GPOS table,\n there may be kerning info at the kern table as well.\n\n Some applications such as MS PowerPoint require kerning info on the kern table.\n More specifically, they require a format 0 kern subtable from a kern table\n version 0 with only glyphs defined in the cmap table, which is the only one\n that Windows understands (and which is also the simplest and more limited\n of all the kern subtables).\n\n Google Fonts ingests fonts made for download and use on desktops, and does\n all web font optimizations in the serving pipeline (using libre libraries\n that anyone can replicate.)\n\n Ideally, TTFs intended for desktop users (and thus the ones intended for\n Google Fonts) should have both KERN and GPOS tables.\n\n Given all of the above, we currently treat kerning on a v0 kern table\n as a good-to-have (but optional) feature.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Is there any unused data at the end of the glyf table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There is no unused data at the end of the glyf table.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check for points out of bounds.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All glyph paths have coordinates within bounds!", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check glyphs do not have duplicate components which have the same x,y coordinates.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyphs do not contain duplicate components which have the same x,y coordinates.", "status": "PASS", "traceback": null}], "rationale": "\n There have been cases in which fonts had faulty double quote marks, with each\n of them containing two single quote marks as components with the same\n x, y coordinates which makes them visually look like single quote marks.\n\n This check ensures that glyphs do not contain duplicate components\n which have the same x,y coordinates.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "The variable font 'wght' (Weight) axis coordinate must be 400 on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wght_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wght' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght\n\n If a variable font has a 'wght' (Weight) axis, then the coordinate of\n its 'Regular' instance is required to be 400.\n ", "result": "SKIP"}, {"description": "The variable font 'wdth' (Width) axis coordinate must be 100 on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wdth_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wdth' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wdth\n\n If a variable font has a 'wdth' (Width) axis, then the coordinate of\n its 'Regular' instance is required to be 100.\n ", "result": "SKIP"}, {"description": "The variable font 'slnt' (Slant) axis coordinate must be zero on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_slnt_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'slnt' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_slnt\n\n If a variable font has a 'slnt' (Slant) axis, then the coordinate of\n its 'Regular' instance is required to be zero.\n ", "result": "SKIP"}, {"description": "The variable font 'ital' (Italic) axis coordinate must be zero on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_ital_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'ital' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_ital\n\n If a variable font has a 'ital' (Italic) axis, then the coordinate of\n its 'Regular' instance is required to be zero.\n ", "result": "SKIP"}, {"description": "The variable font 'opsz' (Optical Size) axis coordinate should be between 10 and 16 on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_opsz_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'opsz' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_opsz\n\n If a variable font has an 'opsz' (Optical Size) axis, then\n the coordinate of its 'Regular' instance is recommended to be\n a value in the range 10 to 16.\n ", "result": "SKIP"}, {"description": "The variable font 'wght' (Weight) axis coordinate must be 700 on the 'Bold' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wght_axis", "status": "SKIP", "traceback": null}], "rationale": "\n The Open-Type spec's registered\n design-variation tag 'wght' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght\n does not specify a required value for the 'Bold' instance of a variable font.\n\n But Dave Crossland suggested that we should enforce\n a required value of 700 in this case (NOTE: a distinction\n is made between \"no bold instance present\" vs \"bold instance is present\n but its wght coordinate is not == 700\").\n ", "result": "SKIP"}, {"description": "The variable font 'wght' (Weight) axis coordinate must be within spec range of 1 to 1000 on all instances.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wght_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wght' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght\n\n On the 'wght' (Weight) axis, the valid coordinate range is 1-1000.\n ", "result": "SKIP"}, {"description": "The variable font 'wdth' (Width) axis coordinate must strictly greater than zero.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wdth_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wdth' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wdth\n\n On the 'wdth' (Width) axis, the valid numeric range is strictly greater than\n zero.\n ", "result": "SKIP"}, {"description": "The variable font 'slnt' (Slant) axis coordinate specifies positive values in its range?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_slnt_axis", "status": "SKIP", "traceback": null}], "rationale": "\n The OpenType spec says at\n https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_slnt that:\n\n [...] the scale for the Slant axis is interpreted as the angle of slant\n in counter-clockwise degrees from upright. This means that a typical,\n right-leaning oblique design will have a negative slant value. This matches\n the scale used for the italicAngle field in the post table.\n ", "result": "SKIP"}, {"description": "Validates that the value of axisNameID used by each VariationAxisRecord is greater than 255 and less than 32768.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The axisNameID field provides a name ID that can be used to obtain strings\n from the 'name' table that can be used to refer to the axis in application\n user interfaces. The name ID must be greater than 255 and less than 32768.\n ", "result": "SKIP"}, {"description": "Validates that the value of subfamilyNameID used by each InstanceRecord is 2, 17, or greater than 255 and less than 32768.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The subfamilyNameID field provides a name ID that can be used to obtain\n strings from the 'name' table that can be treated as equivalent to name\n ID 17 (typographic subfamily) strings for the given instance. Values of\n 2 or 17 can be used; otherwise, values must be greater than 255 and less\n than 32768.\n ", "result": "SKIP"}, {"description": "Validates that the value of postScriptNameID used by each InstanceRecord is 6, 0xFFFF, or greater than 255 and less than 32768.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The postScriptNameID field provides a name ID that can be used to obtain\n strings from the 'name' table that can be treated as equivalent to name\n ID 6 (PostScript name) strings for the given instance. Values of 6 and\n 0xFFFF can be used; otherwise, values must be greater than 255 and less\n than 32768.\n ", "result": "SKIP"}, {"description": "Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9.1\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The default instance of a font is that instance for which the coordinate\n value of each axis is the defaultValue specified in the corresponding\n variation axis record. An instance record is not required for the default\n instance, though an instance record can be provided. When enumerating named\n instances, the default instance should be enumerated even if there is no\n corresponding instance record. If an instance record is included for the\n default instance (that is, an instance record has coordinates set to default\n values), then the nameID value should be set to either 2 or 17 or to a\n name ID with the same value as name ID 2 or 17. Also, if a postScriptNameID is\n included in instance records, and the postScriptNameID value should be set\n to 6 or to a name ID with the same value as name ID 6.\n ", "result": "SKIP"}, {"description": "Validates that all of the instance records in a given font have the same size.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n All of the instance records in a given font must be the same size, with\n all either including or omitting the postScriptNameID field. [...]\n If the value is 0xFFFF, then the value is ignored, and no PostScript name\n equivalent is provided for the instance.\n ", "result": "SKIP"}, {"description": "Validates that all of the instance records in a given font have distinct data.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n All of the instance records in a font should have distinct coordinates\n and distinct subfamilyNameID and postScriptName ID values. If two or more\n records share the same coordinates, the same nameID values or the same\n postScriptNameID values, then all but the first can be ignored.\n ", "result": "SKIP"}, {"description": "Validate foundry-defined design-variation axis tag names.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's syntactic requirements for\n foundry-defined design-variation axis tags available at\n https://learn.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg\n\n Foundry-defined tags must begin with an uppercase letter\n and must use only uppercase letters or digits.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"SKIP": 16}}, {"checks": [{"description": "Ensure VFs have 'ital' STAT axis.", "key": ["", "", []], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Check that related Upright and Italic VFs have a\n 'ital' axis in STAT table.\n ", "result": "PASS"}, {"description": "All fvar axes have a correspondent Axis Record on STAT table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the OpenType spec, there must be an Axis Record\n for every axis defined in the fvar table.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/stat#axis-records\n ", "result": "SKIP"}, {"description": "STAT table has Axis Value tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n According to the OpenType spec, in a variable font, it is strongly recommended\n that axis value tables be included for every element of typographic subfamily\n names for all of the named instances defined in the 'fvar' table.\n\n Axis value tables are particularly important for variable fonts, but can also\n be used in non-variable fonts. When used in non-variable fonts, axis value\n tables for particular values should be implemented consistently across fonts\n in the family.\n\n If present, Format 4 Axis Value tables are checked to ensure they have more than\n one AxisValueRecord (a strong recommendation from the OpenType spec).\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/stat#axis-value-tables\n ", "result": "SKIP"}, {"description": "Ensure 'ital' STAT axis is boolean value (derived from com.google.fonts/check/italic_axis_in_stat_is_boolean)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n Check that the value of the 'ital' STAT axis is boolean (either 0 or 1),\n and elided for the Upright and not elided for the Italic,\n and that the Upright is linked to the Italic.\n ", "result": "SKIP"}, {"description": "Ensure 'ital' STAT axis is last. (derived from com.google.fonts/check/italic_axis_last)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n Check that the 'ital' STAT axis is last in axis order.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"PASS": 1, "SKIP": 4}}, {"checks": [{"description": "Does the font have any invalid feature tags?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No invalid feature tags were found", "status": "PASS", "traceback": null}], "rationale": "\n Incorrect tags can be indications of typos, leftover debugging code or\n questionable approaches, or user error in the font editor. Such typos can\n cause features and language support to fail to work as intended.\n ", "result": "PASS", "severity": 8}, {"description": "Does the font have any invalid script tags?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No invalid script tags were found", "status": "PASS", "traceback": null}], "rationale": "\n Incorrect script tags can be indications of typos, leftover debugging code\n or questionable approaches, or user error in the font editor. Such typos can\n cause features and language support to fail to work as intended.\n ", "result": "PASS", "severity": 8}, {"description": "Does the font have any invalid language tags?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No invalid language tags were found", "status": "PASS", "traceback": null}], "rationale": "\n Incorrect language tags can be indications of typos, leftover debugging code\n or questionable approaches, or user error in the font editor. Such typos can\n cause features and language support to fail to work as intended.\n ", "result": "PASS", "severity": 8}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "Check that texts shape as per expectation", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Shaping test directory not defined in configuration file", "status": "SKIP", "traceback": null}], "rationale": "\n Fonts with complex layout rules can benefit from regression tests to ensure\n that the rules are behaving as designed. This checks runs a shaping test\n suite and compares expected shaping against actual shaping, reporting\n any differences.\n\n Shaping test suites should be written by the font engineer and referenced\n in the FontBakery configuration file. For more information about write\n shaping test files and how to configure FontBakery to read the shaping\n test suites, see https://simoncozens.github.io/tdd-for-otl/\n ", "result": "SKIP"}, {"description": "Check that no forbidden glyphs are found while shaping", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Shaping test directory not defined in configuration file", "status": "SKIP", "traceback": null}], "rationale": "\n Fonts with complex layout rules can benefit from regression tests to ensure\n that the rules are behaving as designed. This checks runs a shaping test\n suite and reports if any glyphs are generated in the shaping which should\n not be produced. (For example, .notdef glyphs, visible viramas, etc.)\n\n Shaping test suites should be written by the font engineer and referenced in\n the FontBakery configuration file. For more information about write shaping\n test files and how to configure FontBakery to read the shaping test suites,\n see https://simoncozens.github.io/tdd-for-otl/\n ", "result": "SKIP"}, {"description": "Check that no collisions are found while shaping", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Shaping test directory not defined in configuration file", "status": "SKIP", "traceback": null}], "rationale": "\n Fonts with complex layout rules can benefit from regression tests to ensure\n that the rules are behaving as designed. This checks runs a shaping test\n suite and reports instances where the glyphs collide in unexpected ways.\n\n Shaping test suites should be written by the font engineer and referenced\n in the FontBakery configuration file. For more information about write\n shaping test files and how to configure FontBakery to read the shaping\n test suites, see https://simoncozens.github.io/tdd-for-otl/\n ", "result": "SKIP"}, {"description": "Ensure dotted circle glyph is present and can attach marks.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No dotted circle glyph present [code: missing-dotted-circle]", "status": "WARN", "traceback": null}], "rationale": "\n The dotted circle character (U+25CC) is inserted by shaping engines before\n mark glyphs which do not have an associated base, especially in the context\n of broken syllabic clusters.\n\n For fonts containing combining marks, it is recommended that the dotted circle\n character be included so that these isolated marks can be displayed properly;\n for fonts supporting complex scripts, this should be considered mandatory.\n\n Additionally, when a dotted circle glyph is present, it should be able to\n display all marks correctly, meaning that it should contain anchors for all\n attaching marks.\n ", "result": "WARN", "severity": 3}, {"description": "Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikbrokenfax/RubikBrokenFax-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "It is not clear if the soft dotted characters have glyphs with dots.", "status": "SKIP", "traceback": null}], "rationale": "\n An accent placed on characters with a \"soft dot\", like i or j, causes\n the dot to disappear.\n An explicit dot above can be added where required.\n See \"Diacritics on i and j\" in Section 7.1, \"Latin\" in The Unicode Standard.\n\n Characters with the Soft_Dotted property are listed in\n https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n\n See also:\n https://googlefonts.github.io/gf-guide/diacritics.html#soft-dotted-glyphs\n ", "result": "SKIP", "severity": 3}], "key": ["", null, null], "result": {"SKIP": 4, "WARN": 1}}], "fontbakery_version": "0.10.4"} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikbrokenfax/GoogleFonts.json b/docs/fontbakery-reports/rubikbrokenfax/GoogleFonts.json new file mode 100644 index 0000000..848cf1a --- /dev/null +++ b/docs/fontbakery-reports/rubikbrokenfax/GoogleFonts.json @@ -0,0 +1,7 @@ +{ + "color": "green", + "label": "Google Fonts", + "logoSvg": "", + "message": "87%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikbrokenfax/ShapingChecks.json b/docs/fontbakery-reports/rubikbrokenfax/ShapingChecks.json new file mode 100644 index 0000000..1e5a389 --- /dev/null +++ b/docs/fontbakery-reports/rubikbrokenfax/ShapingChecks.json @@ -0,0 +1,7 @@ +{ + "color": "red", + "label": "Shaping Checks", + "logoSvg": "", + "message": "0%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikbrokenfax/Universal.json b/docs/fontbakery-reports/rubikbrokenfax/Universal.json new file mode 100644 index 0000000..d84470f --- /dev/null +++ b/docs/fontbakery-reports/rubikbrokenfax/Universal.json @@ -0,0 +1,7 @@ +{ + "color": "green", + "label": "Universal", + "logoSvg": "", + "message": "87%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikbrokenfax/overall.json b/docs/fontbakery-reports/rubikbrokenfax/overall.json new file mode 100644 index 0000000..126f6a4 --- /dev/null +++ b/docs/fontbakery-reports/rubikbrokenfax/overall.json @@ -0,0 +1,7 @@ +{ + "color": "brightgreen", + "label": "FontBakery QA", + "logoSvg": "", + "message": "90%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikdoodleshadow-report.html b/docs/fontbakery-reports/rubikdoodleshadow-report.html new file mode 100644 index 0000000..c3311c0 --- /dev/null +++ b/docs/fontbakery-reports/rubikdoodleshadow-report.html @@ -0,0 +1,2734 @@ + + + + + FontBakery Check Report + + + +
+ +
+ Fontbakery Technical Report +
+
+ +
+

If you think a check is flawed or have an idea for a check, please file an issue at https://github.com/fonttools/fontbakery/issues and remember to include a pointer to the repo and branch you're checking.

+

Summary

+ + + + + + + + + + + + + + + + + + + + + + + + + +
💥 ERROR🔥 FAIL⚠️ WARN⏩ SKIPℹ️ INFO✅ PASS
0410649160
0%2%6%35%5%88%
+ +

Note: The following loglevels were omitted in this report: SKIP, INFO, PASS, DEBUG

+ +

Meaning of check results:

+ +
    +
  • 💥 An ERROR is something wrong with FontBakery itself, possibly a bug. +
  • 🔥 A FAIL is a problem with the font that must be fixed. +
  • ⚠️ A WARN is something that you should consider addressing. +
  • ℹ️ An INFO result simply prints something useful. Typically stats. +
  • ✅ A PASS means the font looks good for the given checking routine. +
  • ⏩ And a SKIP happens when the check does not apply to the given font. +
+ +

If you get ERRORs, please help us improve the tool by reporting them at our + issue tracker.

+ +

(but other kinds of bug reports and/or feature requests + are also always welcome, of course!)

+ +

FontBakery version: 0.10.4

+ +

Section: Google Fonts

+🔥🔥🔥🔥⚠️⚠️⚠️⚠️⚠️⚠️⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩ℹ️ℹ️ℹ️ℹ️ℹ️ℹ️ℹ️ +

Checking OS/2 achVendID.

+
Check ID: com.google.fonts/check/vendor_id
+ +
⚠️ RubikDoodleShadow-Regular.ttf
  • ⚠️ WARN

    OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx +[code: unknown]

    +
+

Check for codepoints not covered by METADATA subsets.

+
Check ID: com.google.fonts/check/metadata/unreachable_subsetting
+ +
⚠️ RubikDoodleShadow-Regular.ttf
  • ⚠️ WARN

    The following codepoints supported by the font are not covered by +any subsets defined in the font's metadata file, and will never +be served. You can solve this by either manually adding additional +subset declarations to METADATA.pb, or by editing the glyphset +definitions.

    +
      +
    • U+02C7 CARON: try adding one of: canadian-aboriginal, yi, tifinagh
    • +
    • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
    • +
    • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
    • +
    • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
    • +
    • U+02DD DOUBLE ACUTE ACCENT: not included in any glyphset definition
    • +
    • U+0306 COMBINING BREVE: try adding one of: tifinagh, old-permic
    • +
    • U+030A COMBINING RING ABOVE: try adding syriac
    • +
    • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage
    • +
    • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
    • +
    • U+0312 COMBINING TURNED COMMA ABOVE: not included in any glyphset definition
    • +
    • U+0326 COMBINING COMMA BELOW: not included in any glyphset definition
    • +
    • U+0327 COMBINING CEDILLA: not included in any glyphset definition
    • +
    • U+0328 COMBINING OGONEK: not included in any glyphset definition
    • +
    • U+0335 COMBINING SHORT STROKE OVERLAY: not included in any glyphset definition
    • +
    • U+0337 COMBINING SHORT SOLIDUS OVERLAY: not included in any glyphset definition
    • +
    • U+0338 COMBINING LONG SOLIDUS OVERLAY: not included in any glyphset definition
    • +
    • U+2021 DOUBLE DAGGER: try adding adlam
    • +
    • U+2030 PER MILLE SIGN: try adding adlam
    • +
    • U+2070 SUPERSCRIPT ZERO: not included in any glyphset definition
    • +
    • U+2075 SUPERSCRIPT FIVE: not included in any glyphset definition
    • +
    • U+2076 SUPERSCRIPT SIX: not included in any glyphset definition
    • +
    • U+2077 SUPERSCRIPT SEVEN: not included in any glyphset definition
    • +
    • U+2078 SUPERSCRIPT EIGHT: not included in any glyphset definition
    • +
    • U+2079 SUPERSCRIPT NINE: not included in any glyphset definition
    • +
    • U+207D SUPERSCRIPT LEFT PARENTHESIS: not included in any glyphset definition
    • +
    • U+207E SUPERSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition
    • +
    • U+2080 SUBSCRIPT ZERO: not included in any glyphset definition
    • +
    • U+2081 SUBSCRIPT ONE: not included in any glyphset definition
    • +
    • U+2082 SUBSCRIPT TWO: not included in any glyphset definition
    • +
    • U+2083 SUBSCRIPT THREE: not included in any glyphset definition
    • +
    • U+2084 SUBSCRIPT FOUR: not included in any glyphset definition
    • +
    • U+2085 SUBSCRIPT FIVE: not included in any glyphset definition
    • +
    • U+2086 SUBSCRIPT SIX: not included in any glyphset definition
    • +
    • U+2087 SUBSCRIPT SEVEN: not included in any glyphset definition
    • +
    • U+2088 SUBSCRIPT EIGHT: not included in any glyphset definition
    • +
    • U+2089 SUBSCRIPT NINE: not included in any glyphset definition
    • +
    • U+208D SUBSCRIPT LEFT PARENTHESIS: not included in any glyphset definition
    • +
    • U+208E SUBSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition
    • +
    • U+212E ESTIMATED SYMBOL: not included in any glyphset definition
    • +
    • U+2153 VULGAR FRACTION ONE THIRD: not included in any glyphset definition
    • +
    • U+2154 VULGAR FRACTION TWO THIRDS: not included in any glyphset definition
    • +
    • U+215B VULGAR FRACTION ONE EIGHTH: not included in any glyphset definition
    • +
    • U+215C VULGAR FRACTION THREE EIGHTHS: not included in any glyphset definition
    • +
    • U+215D VULGAR FRACTION FIVE EIGHTHS: not included in any glyphset definition
    • +
    • U+215E VULGAR FRACTION SEVEN EIGHTHS: not included in any glyphset definition
    • +
    • U+FB01 LATIN SMALL LIGATURE FI: not included in any glyphset definition
    • +
    • U+FB02 LATIN SMALL LIGATURE FL: not included in any glyphset definition
    • +
    +

    Or you can add the above codepoints to one of the subsets supported by the font: cyrillic, cyrillic-ext, hebrew, latin, latin-ext, math, menu, symbols [code: unreachable-subsetting]

    +
+

Ensure files are not too large.

+
Check ID: com.google.fonts/check/file_size
+ +
⚠️ RubikDoodleShadow-Regular.ttf
  • ⚠️ WARN

    Font file is 1.3Mb; ideally it should be less than 1.0Mb [code: large-font]

    +
+

METADATA.pb: Check URL on copyright string is the same as in repository_url field.

+
Check ID: com.google.fonts/check/metadata/consistent_repo_urls
+ +
🔥 RubikDoodleShadow-Regular.ttf
  • 🔥 FAIL

    Repository URL is https://github.com/NaN-xyz/Rubik-Filtered

    +

    But: OFL text has 'https:/' and HTML description has 'github.com/NaN-xyz/Glyph-Filters' +[code: mismatch]

    +
+

EXPERIMENTAL CHECK - Since 2023/Nov/02
Shapes languages in all GF glyphsets.

+
Check ID: com.google.fonts/check/glyphsets/shape_languages
+ +
🔥 RubikDoodleShadow-Regular.ttf
  • 🔥 FAIL

    GF_Latin_Core glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| haw_Latn (Hawaiian) | Some base glyphs were missing: ʻ | +| ^ | Shaper produced a .notdef | +| mh_Latn (Marshallese) | Some base glyphs were missing: Ḷ, ḷ, Ṃ, ṃ, Ṇ, ṇ, Ọ, ọ | +| ^ | Some mark glyphs were missing: ◌̣ | +| ^ | Shaper produced a .notdef | +| scn_Latn (Sicilian) | Some base glyphs were missing: Ḍ, ḍ | +| ^ | Shaper produced a .notdef | +| teo_Latn (Teso) | Some base glyphs were missing: Ɔ, Ɛ, Ɨ, Ʉ, ɔ, ɛ, ɨ, ʉ, ᵃ, ᵉ, ᵋ, ᵒ, ᵓ, ᵘ, ᶤ, ᶶ, ⁱ | +| ^ | Shaper produced a .notdef |

    +

    [code: failed-language-shaping]

    +
  • 🔥 FAIL

    GF_Cyrillic_Plus glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| tg_Cyrl (Tajik) | Some base glyphs were missing: ҳ | +| ^ | Shaper produced a .notdef | +| uz_Cyrl (Uzbek (Cyrillic)) | Some base glyphs were missing: ҳ | +| ^ | Shaper produced a .notdef |

    +

    [code: failed-language-shaping]

    +
  • ⚠️ WARN

    GF_Latin_Core glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| lg_Latn (Ganda) | No variant glyphs were found for Eng | +| dyo_Latn (Jola-Fonyi) | No variant glyphs were found for Eng | +| ny_Latn (Nyanja) | No variant glyphs were found for Eng | +| wo_Latn (Wolof) | No variant glyphs were found for Eng |

    +

    [code: warning-language-shaping]

    +
  • ⚠️ WARN

    GF_Cyrillic_Plus glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| ku_Cyrl (Kurdish) | No exemplar glyphs were defined for language Kurdish |

    +

    [code: warning-language-shaping]

    +
+

Is there kerning info for non-ligated sequences?

+
Check ID: com.google.fonts/check/kerning_for_non_ligated_sequences
+ +
⚠️ RubikDoodleShadow-Regular.ttf
  • ⚠️ WARN

    GPOS table lacks kerning info for the following non-ligated sequences:

    +
    - f + f
    +
    +- f + i
    +
    +- i + f
    +
    +- f + l
    +
    +- l + f
    +
    +- i + l [code: lacks-kern-info]
    +
    +
+

Check font follows the Google Fonts vertical metric schema

+
Check ID: com.google.fonts/check/vertical_metrics
+ +
🔥 RubikDoodleShadow-Regular.ttf
  • 🔥 FAIL

    The sum of hhea.ascender + abs(hhea.descender) + hhea.lineGap is 1185 when it should be at least 1200 [code: bad-hhea-range]

    +
+

METADATA.pb: Designers are listed correctly on the Google Fonts catalog?

+
Check ID: com.google.fonts/check/metadata/designer_profiles
+ +
🔥 RubikDoodleShadow-Regular.ttf
  • 🔥 FAIL

    Designer Luke Prowse still does not have an avatar image. Please provide one. [code: missing-avatar]

    +
+

On a family update, the DESCRIPTION.en_us.html file should ideally also be updated.

+
Check ID: com.google.fonts/check/description/family_update
+ +
⚠️ RubikDoodleShadow-Regular.ttf
  • ⚠️ WARN

    The DESCRIPTION.en_us.html file in this family has not changed in comparison to the latest font release on the google/fonts github repo. +Please consider mentioning note-worthy improvements made to the family recently. [code: description-not-updated]

    +
+

Ensure fonts have ScriptLangTags declared on the 'meta' table.

+
Check ID: com.google.fonts/check/meta/script_lang_tags
+ +
⚠️ RubikDoodleShadow-Regular.ttf
  • ⚠️ WARN

    This font file does not have a 'meta' table. [code: lacks-meta-table]

    +
+

Section: Universal

+⚠️⚠️⏩⏩⏩⏩⏩⏩⏩ℹ️ℹ️ +

Check if each glyph has the recommended amount of contours.

+
Check ID: com.google.fonts/check/contour_count
+ +
⚠️ RubikDoodleShadow-Regular.ttf
  • ⚠️ WARN

    This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

    +

    The following glyphs do not have the recommended number of contours:

    +
    - Glyph name: exclam	Contours detected: 4	Expected: 2
    +
    +- Glyph name: quotedbl	Contours detected: 14	Expected: 2
    +
    +- Glyph name: numbersign	Contours detected: 15	Expected: 2
    +
    +- Glyph name: dollar	Contours detected: 13	Expected: 1, 3 or 5
    +
    +- Glyph name: percent	Contours detected: 35	Expected: 5
    +
    +- Glyph name: ampersand	Contours detected: 14	Expected: 1, 2 or 3
    +
    +- Glyph name: quotesingle	Contours detected: 2	Expected: 1
    +
    +- Glyph name: parenleft	Contours detected: 2	Expected: 1
    +
    +- Glyph name: parenright	Contours detected: 3	Expected: 1
    +
    +- Glyph name: asterisk	Contours detected: 10	Expected: 1 or 4
    +
    +- Glyph name: plus	Contours detected: 3	Expected: 1
    +
    +- Glyph name: comma	Contours detected: 2	Expected: 1
    +
    +- Glyph name: hyphen	Contours detected: 3	Expected: 1
    +
    +- Glyph name: period	Contours detected: 2	Expected: 1
    +
    +- Glyph name: slash	Contours detected: 5	Expected: 1
    +
    +- Glyph name: zero	Contours detected: 6	Expected: 2 or 3
    +
    +- Glyph name: one	Contours detected: 3	Expected: 1
    +
    +- Glyph name: two	Contours detected: 3	Expected: 1
    +
    +- Glyph name: three	Contours detected: 3	Expected: 1
    +
    +- Glyph name: four	Contours detected: 11	Expected: 1 or 2
    +
    +- Glyph name: five	Contours detected: 5	Expected: 1
    +
    +- Glyph name: six	Contours detected: 8	Expected: 1 or 2
    +
    +- Glyph name: seven	Contours detected: 6	Expected: 1
    +
    +- Glyph name: eight	Contours detected: 6	Expected: 3
    +
    +- Glyph name: nine	Contours detected: 9	Expected: 1 or 2
    +
    +- Glyph name: colon	Contours detected: 4	Expected: 2
    +
    +- Glyph name: semicolon	Contours detected: 6	Expected: 2
    +
    +- Glyph name: less	Contours detected: 2	Expected: 1
    +
    +- Glyph name: equal	Contours detected: 7	Expected: 2
    +
    +- Glyph name: greater	Contours detected: 3	Expected: 1
    +
    +- Glyph name: question	Contours detected: 4	Expected: 2
    +
    +- Glyph name: at	Contours detected: 37	Expected: 2
    +
    +- Glyph name: A	Contours detected: 12	Expected: 2
    +
    +- Glyph name: B	Contours detected: 7	Expected: 2 or 3
    +
    +- Glyph name: C	Contours detected: 5	Expected: 1
    +
    +- Glyph name: D	Contours detected: 4	Expected: 2
    +
    +- Glyph name: E	Contours detected: 4	Expected: 1
    +
    +- Glyph name: F	Contours detected: 4	Expected: 1
    +
    +- Glyph name: G	Contours detected: 9	Expected: 1
    +
    +- Glyph name: H	Contours detected: 3	Expected: 1
    +
    +- Glyph name: I	Contours detected: 2	Expected: 1
    +
    +- Glyph name: J	Contours detected: 4	Expected: 1
    +
    +- Glyph name: K	Contours detected: 11	Expected: 1 or 2
    +
    +- Glyph name: L	Contours detected: 2	Expected: 1
    +
    +- Glyph name: M	Contours detected: 13	Expected: 1
    +
    +- Glyph name: N	Contours detected: 13	Expected: 1
    +
    +- Glyph name: O	Contours detected: 6	Expected: 2
    +
    +- Glyph name: P	Contours detected: 5	Expected: 1 or 2
    +
    +- Glyph name: Q	Contours detected: 6	Expected: 2
    +
    +- Glyph name: R	Contours detected: 9	Expected: 1 or 2
    +
    +- Glyph name: S	Contours detected: 14	Expected: 1
    +
    +- Glyph name: T	Contours detected: 2	Expected: 1
    +
    +- Glyph name: U	Contours detected: 2	Expected: 1
    +
    +- Glyph name: V	Contours detected: 8	Expected: 1
    +
    +- Glyph name: W	Contours detected: 13	Expected: 1 or 2
    +
    +- Glyph name: X	Contours detected: 16	Expected: 1
    +
    +- Glyph name: Y	Contours detected: 6	Expected: 1
    +
    +- Glyph name: Z	Contours detected: 3	Expected: 1
    +
    +- Glyph name: bracketleft	Contours detected: 3	Expected: 1
    +
    +- Glyph name: backslash	Contours detected: 2	Expected: 1
    +
    +- Glyph name: bracketright	Contours detected: 4	Expected: 1
    +
    +- Glyph name: asciicircum	Contours detected: 5	Expected: 1
    +
    +- Glyph name: underscore	Contours detected: 3	Expected: 1
    +
    +- Glyph name: grave	Contours detected: 2	Expected: 1
    +
    +- Glyph name: a	Contours detected: 7	Expected: 2
    +
    +- Glyph name: b	Contours detected: 8	Expected: 2
    +
    +- Glyph name: c	Contours detected: 4	Expected: 1
    +
    +- Glyph name: d	Contours detected: 8	Expected: 2
    +
    +- Glyph name: e	Contours detected: 8	Expected: 2
    +
    +- Glyph name: f	Contours detected: 5	Expected: 1
    +
    +- Glyph name: g	Contours detected: 9	Expected: 2 or 3
    +
    +- Glyph name: h	Contours detected: 2	Expected: 1
    +
    +- Glyph name: i	Contours detected: 4	Expected: 2
    +
    +- Glyph name: j	Contours detected: 4	Expected: 2
    +
    +- Glyph name: k	Contours detected: 12	Expected: 1 or 2
    +
    +- Glyph name: l	Contours detected: 2	Expected: 1
    +
    +- Glyph name: m	Contours detected: 32	Expected: 1
    +
    +- Glyph name: n	Contours detected: 3	Expected: 1
    +
    +- Glyph name: o	Contours detected: 11	Expected: 2
    +
    +- Glyph name: p	Contours detected: 7	Expected: 2
    +
    +- Glyph name: q	Contours detected: 7	Expected: 2
    +
    +- Glyph name: r	Contours detected: 2	Expected: 1
    +
    +- Glyph name: s	Contours detected: 16	Expected: 1
    +
    +- Glyph name: t	Contours detected: 4	Expected: 1
    +
    +- Glyph name: u	Contours detected: 5	Expected: 1
    +
    +- Glyph name: v	Contours detected: 8	Expected: 1
    +
    +- Glyph name: w	Contours detected: 14	Expected: 1
    +
    +- Glyph name: x	Contours detected: 9	Expected: 1
    +
    +- Glyph name: y	Contours detected: 6	Expected: 1
    +
    +- Glyph name: z	Contours detected: 4	Expected: 1
    +
    +- Glyph name: braceleft	Contours detected: 14	Expected: 1
    +
    +- Glyph name: bar	Contours detected: 2	Expected: 1
    +
    +- Glyph name: braceright	Contours detected: 3	Expected: 1
    +
    +- Glyph name: asciitilde	Contours detected: 2	Expected: 1
    +
    +- Glyph name: exclamdown	Contours detected: 7	Expected: 2
    +
    +- Glyph name: cent	Contours detected: 6	Expected: 1 or 2
    +
    +- Glyph name: sterling	Contours detected: 8	Expected: 1 or 2
    +
    +- Glyph name: currency	Contours detected: 7	Expected: 2
    +
    +- Glyph name: yen	Contours detected: 9	Expected: 1 or 2
    +
    +- Glyph name: brokenbar	Contours detected: 5	Expected: 2
    +
    +- Glyph name: section	Contours detected: 20	Expected: 2
    +
    +- Glyph name: dieresis	Contours detected: 10	Expected: 2
    +
    +- Glyph name: copyright	Contours detected: 48	Expected: 3
    +
    +- Glyph name: ordfeminine	Contours detected: 4	Expected: 2 or 3
    +
    +- Glyph name: guillemotleft	Contours detected: 11	Expected: 2
    +
    +- Glyph name: logicalnot	Contours detected: 2	Expected: 1
    +
    +- Glyph name: registered	Contours detected: 43	Expected: 3 or 4
    +
    +- Glyph name: macron	Contours detected: 3	Expected: 1
    +
    +- Glyph name: degree	Contours detected: 6	Expected: 2
    +
    +- Glyph name: plusminus	Contours detected: 6	Expected: 1 or 2
    +
    +- Glyph name: uni00B2	Contours detected: 4	Expected: 1
    +
    +- Glyph name: uni00B3	Contours detected: 5	Expected: 1
    +
    +- Glyph name: acute	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni00B5	Contours detected: 4	Expected: 1
    +
    +- Glyph name: paragraph	Contours detected: 30	Expected: 1, 2 or 3
    +
    +- Glyph name: periodcentered	Contours detected: 2	Expected: 1
    +
    +- Glyph name: cedilla	Contours detected: 6	Expected: 1
    +
    +- Glyph name: uni00B9	Contours detected: 2	Expected: 1
    +
    +- Glyph name: ordmasculine	Contours detected: 6	Expected: 2 or 3
    +
    +- Glyph name: guillemotright	Contours detected: 13	Expected: 2
    +
    +- Glyph name: onequarter	Contours detected: 13	Expected: 3 or 4
    +
    +- Glyph name: onehalf	Contours detected: 13	Expected: 3
    +
    +- Glyph name: threequarters	Contours detected: 16	Expected: 3 or 4
    +
    +- Glyph name: questiondown	Contours detected: 14	Expected: 2
    +
    +- Glyph name: Agrave	Contours detected: 14	Expected: 3
    +
    +- Glyph name: Aacute	Contours detected: 17	Expected: 3
    +
    +- Glyph name: Acircumflex	Contours detected: 16	Expected: 3
    +
    +- Glyph name: Atilde	Contours detected: 14	Expected: 3
    +
    +- Glyph name: Adieresis	Contours detected: 16	Expected: 4
    +
    +- Glyph name: Aring	Contours detected: 18	Expected: 3 or 4
    +
    +- Glyph name: AE	Contours detected: 13	Expected: 2
    +
    +- Glyph name: Ccedilla	Contours detected: 8	Expected: 1 or 2
    +
    +- Glyph name: Egrave	Contours detected: 6	Expected: 2
    +
    +- Glyph name: Eacute	Contours detected: 9	Expected: 2
    +
    +- Glyph name: Ecircumflex	Contours detected: 8	Expected: 2
    +
    +- Glyph name: Edieresis	Contours detected: 8	Expected: 3
    +
    +- Glyph name: Igrave	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Iacute	Contours detected: 7	Expected: 2
    +
    +- Glyph name: Icircumflex	Contours detected: 6	Expected: 2
    +
    +- Glyph name: Idieresis	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Eth	Contours detected: 17	Expected: 2
    +
    +- Glyph name: Ntilde	Contours detected: 15	Expected: 2
    +
    +- Glyph name: Ograve	Contours detected: 8	Expected: 3
    +
    +- Glyph name: Oacute	Contours detected: 11	Expected: 3
    +
    +- Glyph name: Ocircumflex	Contours detected: 10	Expected: 3
    +
    +- Glyph name: Otilde	Contours detected: 8	Expected: 3
    +
    +- Glyph name: Odieresis	Contours detected: 10	Expected: 4
    +
    +- Glyph name: multiply	Contours detected: 5	Expected: 1
    +
    +- Glyph name: Oslash	Contours detected: 16	Expected: 2 or 3
    +
    +- Glyph name: Ugrave	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Uacute	Contours detected: 7	Expected: 2
    +
    +- Glyph name: Ucircumflex	Contours detected: 6	Expected: 2
    +
    +- Glyph name: Udieresis	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Yacute	Contours detected: 11	Expected: 2
    +
    +- Glyph name: Thorn	Contours detected: 5	Expected: 1 or 2
    +
    +- Glyph name: germandbls	Contours detected: 16	Expected: 1
    +
    +- Glyph name: agrave	Contours detected: 9	Expected: 3
    +
    +- Glyph name: aacute	Contours detected: 10	Expected: 3
    +
    +- Glyph name: acircumflex	Contours detected: 11	Expected: 3
    +
    +- Glyph name: atilde	Contours detected: 10	Expected: 3
    +
    +- Glyph name: adieresis	Contours detected: 17	Expected: 4
    +
    +- Glyph name: aring	Contours detected: 12	Expected: 4
    +
    +- Glyph name: ae	Contours detected: 16	Expected: 3
    +
    +- Glyph name: ccedilla	Contours detected: 10	Expected: 1 or 2
    +
    +- Glyph name: egrave	Contours detected: 10	Expected: 3
    +
    +- Glyph name: eacute	Contours detected: 11	Expected: 3
    +
    +- Glyph name: ecircumflex	Contours detected: 12	Expected: 3
    +
    +- Glyph name: edieresis	Contours detected: 18	Expected: 4
    +
    +- Glyph name: igrave	Contours detected: 4	Expected: 2
    +
    +- Glyph name: iacute	Contours detected: 5	Expected: 2
    +
    +- Glyph name: icircumflex	Contours detected: 6	Expected: 2
    +
    +- Glyph name: idieresis	Contours detected: 12	Expected: 3
    +
    +- Glyph name: eth	Contours detected: 8	Expected: 2
    +
    +- Glyph name: ntilde	Contours detected: 6	Expected: 2
    +
    +- Glyph name: ograve	Contours detected: 13	Expected: 3
    +
    +- Glyph name: oacute	Contours detected: 14	Expected: 3
    +
    +- Glyph name: ocircumflex	Contours detected: 15	Expected: 3
    +
    +- Glyph name: otilde	Contours detected: 14	Expected: 3
    +
    +- Glyph name: odieresis	Contours detected: 21	Expected: 4
    +
    +- Glyph name: divide	Contours detected: 8	Expected: 3
    +
    +- Glyph name: oslash	Contours detected: 9	Expected: 3
    +
    +- Glyph name: ugrave	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uacute	Contours detected: 8	Expected: 2
    +
    +- Glyph name: ucircumflex	Contours detected: 9	Expected: 2
    +
    +- Glyph name: udieresis	Contours detected: 15	Expected: 3
    +
    +- Glyph name: yacute	Contours detected: 9	Expected: 2
    +
    +- Glyph name: thorn	Contours detected: 8	Expected: 2
    +
    +- Glyph name: ydieresis	Contours detected: 16	Expected: 3
    +
    +- Glyph name: Amacron	Contours detected: 16	Expected: 3
    +
    +- Glyph name: amacron	Contours detected: 10	Expected: 3
    +
    +- Glyph name: Abreve	Contours detected: 15	Expected: 3
    +
    +- Glyph name: abreve	Contours detected: 12	Expected: 3
    +
    +- Glyph name: Aogonek	Contours detected: 10	Expected: 2 or 3
    +
    +- Glyph name: aogonek	Contours detected: 8	Expected: 2
    +
    +- Glyph name: Cacute	Contours detected: 10	Expected: 2
    +
    +- Glyph name: cacute	Contours detected: 7	Expected: 2
    +
    +- Glyph name: Ccircumflex	Contours detected: 9	Expected: 2
    +
    +- Glyph name: ccircumflex	Contours detected: 8	Expected: 2
    +
    +- Glyph name: Cdotaccent	Contours detected: 7	Expected: 2
    +
    +- Glyph name: cdotaccent	Contours detected: 6	Expected: 2
    +
    +- Glyph name: Ccaron	Contours detected: 8	Expected: 2
    +
    +- Glyph name: ccaron	Contours detected: 6	Expected: 2
    +
    +- Glyph name: Dcaron	Contours detected: 7	Expected: 3
    +
    +- Glyph name: dcaron	Contours detected: 10	Expected: 3
    +
    +- Glyph name: Dcroat	Contours detected: 13	Expected: 2
    +
    +- Glyph name: dcroat	Contours detected: 9	Expected: 2
    +
    +- Glyph name: Emacron	Contours detected: 8	Expected: 2
    +
    +- Glyph name: emacron	Contours detected: 11	Expected: 3
    +
    +- Glyph name: Ebreve	Contours detected: 7	Expected: 2
    +
    +- Glyph name: ebreve	Contours detected: 13	Expected: 3
    +
    +- Glyph name: Edotaccent	Contours detected: 6	Expected: 2
    +
    +- Glyph name: edotaccent	Contours detected: 10	Expected: 3
    +
    +- Glyph name: eogonek	Contours detected: 9	Expected: 2
    +
    +- Glyph name: Ecaron	Contours detected: 7	Expected: 2
    +
    +- Glyph name: ecaron	Contours detected: 10	Expected: 3
    +
    +- Glyph name: Gcircumflex	Contours detected: 13	Expected: 2
    +
    +- Glyph name: gcircumflex	Contours detected: 13	Expected: 3 or 4
    +
    +- Glyph name: Gbreve	Contours detected: 12	Expected: 2
    +
    +- Glyph name: gbreve	Contours detected: 14	Expected: 3 or 4
    +
    +- Glyph name: Gdotaccent	Contours detected: 11	Expected: 2
    +
    +- Glyph name: gdotaccent	Contours detected: 11	Expected: 3 or 4
    +
    +- Glyph name: uni0122	Contours detected: 12	Expected: 2
    +
    +- Glyph name: uni0123	Contours detected: 12	Expected: 3 or 4
    +
    +- Glyph name: Hcircumflex	Contours detected: 7	Expected: 2
    +
    +- Glyph name: hcircumflex	Contours detected: 6	Expected: 2
    +
    +- Glyph name: Hbar	Contours detected: 8	Expected: 2
    +
    +- Glyph name: hbar	Contours detected: 3	Expected: 1
    +
    +- Glyph name: Itilde	Contours detected: 4	Expected: 2
    +
    +- Glyph name: itilde	Contours detected: 5	Expected: 2
    +
    +- Glyph name: Imacron	Contours detected: 6	Expected: 2
    +
    +- Glyph name: imacron	Contours detected: 5	Expected: 2
    +
    +- Glyph name: Ibreve	Contours detected: 5	Expected: 2
    +
    +- Glyph name: ibreve	Contours detected: 7	Expected: 2
    +
    +- Glyph name: iogonek	Contours detected: 5	Expected: 2 or 3
    +
    +- Glyph name: Idotaccent	Contours detected: 4	Expected: 2
    +
    +- Glyph name: dotlessi	Contours detected: 2	Expected: 1
    +
    +- Glyph name: IJ	Contours detected: 12	Expected: 1 or 2
    +
    +- Glyph name: ij	Contours detected: 8	Expected: 3 or 4
    +
    +- Glyph name: Jcircumflex	Contours detected: 8	Expected: 2
    +
    +- Glyph name: jcircumflex	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uni0136	Contours detected: 14	Expected: 2 or 3
    +
    +- Glyph name: uni0137	Contours detected: 14	Expected: 2 or 3
    +
    +- Glyph name: kgreenlandic	Contours detected: 12	Expected: 1 or 2
    +
    +- Glyph name: Lacute	Contours detected: 7	Expected: 2
    +
    +- Glyph name: lacute	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni013B	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni013C	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Lcaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: lcaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ldot	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ldot	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Lslash	Contours detected: 7	Expected: 1
    +
    +- Glyph name: lslash	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Nacute	Contours detected: 18	Expected: 2
    +
    +- Glyph name: nacute	Contours detected: 6	Expected: 2
    +
    +- Glyph name: uni0145	Contours detected: 16	Expected: 2
    +
    +- Glyph name: uni0146	Contours detected: 5	Expected: 2
    +
    +- Glyph name: Ncaron	Contours detected: 16	Expected: 2
    +
    +- Glyph name: ncaron	Contours detected: 5	Expected: 2
    +
    +- Glyph name: napostrophe	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Eng	Contours detected: 10	Expected: 1
    +
    +- Glyph name: eng	Contours detected: 3	Expected: 1
    +
    +- Glyph name: Omacron	Contours detected: 10	Expected: 3
    +
    +- Glyph name: omacron	Contours detected: 14	Expected: 3
    +
    +- Glyph name: Obreve	Contours detected: 9	Expected: 3
    +
    +- Glyph name: obreve	Contours detected: 16	Expected: 3
    +
    +- Glyph name: Ohungarumlaut	Contours detected: 13	Expected: 4
    +
    +- Glyph name: ohungarumlaut	Contours detected: 18	Expected: 4
    +
    +- Glyph name: OE	Contours detected: 5	Expected: 2
    +
    +- Glyph name: oe	Contours detected: 15	Expected: 3
    +
    +- Glyph name: Racute	Contours detected: 14	Expected: 3
    +
    +- Glyph name: racute	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni0156	Contours detected: 12	Expected: 3
    +
    +- Glyph name: uni0157	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Rcaron	Contours detected: 12	Expected: 3
    +
    +- Glyph name: rcaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Sacute	Contours detected: 19	Expected: 2
    +
    +- Glyph name: sacute	Contours detected: 19	Expected: 2
    +
    +- Glyph name: Scircumflex	Contours detected: 18	Expected: 2
    +
    +- Glyph name: scircumflex	Contours detected: 20	Expected: 2
    +
    +- Glyph name: Scedilla	Contours detected: 16	Expected: 1 or 2
    +
    +- Glyph name: scedilla	Contours detected: 9	Expected: 1 or 2
    +
    +- Glyph name: Scaron	Contours detected: 17	Expected: 2
    +
    +- Glyph name: scaron	Contours detected: 18	Expected: 2
    +
    +- Glyph name: Tcaron	Contours detected: 5	Expected: 2
    +
    +- Glyph name: tcaron	Contours detected: 6	Expected: 2
    +
    +- Glyph name: Tbar	Contours detected: 9	Expected: 1
    +
    +- Glyph name: tbar	Contours detected: 6	Expected: 1
    +
    +- Glyph name: Utilde	Contours detected: 4	Expected: 2
    +
    +- Glyph name: utilde	Contours detected: 8	Expected: 2
    +
    +- Glyph name: Umacron	Contours detected: 6	Expected: 2
    +
    +- Glyph name: umacron	Contours detected: 8	Expected: 2
    +
    +- Glyph name: Ubreve	Contours detected: 5	Expected: 2
    +
    +- Glyph name: ubreve	Contours detected: 10	Expected: 2
    +
    +- Glyph name: Uring	Contours detected: 8	Expected: 3
    +
    +- Glyph name: uring	Contours detected: 10	Expected: 3
    +
    +- Glyph name: Uhungarumlaut	Contours detected: 9	Expected: 3
    +
    +- Glyph name: uhungarumlaut	Contours detected: 12	Expected: 3
    +
    +- Glyph name: Uogonek	Contours detected: 70	Expected: 1
    +
    +- Glyph name: uogonek	Contours detected: 7	Expected: 1
    +
    +- Glyph name: Wcircumflex	Contours detected: 17	Expected: 2
    +
    +- Glyph name: wcircumflex	Contours detected: 18	Expected: 2
    +
    +- Glyph name: Ycircumflex	Contours detected: 10	Expected: 2
    +
    +- Glyph name: ycircumflex	Contours detected: 10	Expected: 2
    +
    +- Glyph name: Ydieresis	Contours detected: 10	Expected: 3
    +
    +- Glyph name: Zacute	Contours detected: 8	Expected: 2
    +
    +- Glyph name: zacute	Contours detected: 7	Expected: 2
    +
    +- Glyph name: Zdotaccent	Contours detected: 5	Expected: 2
    +
    +- Glyph name: zdotaccent	Contours detected: 6	Expected: 2
    +
    +- Glyph name: Zcaron	Contours detected: 6	Expected: 2
    +
    +- Glyph name: zcaron	Contours detected: 6	Expected: 2
    +
    +- Glyph name: longs	Contours detected: 3	Expected: 1
    +
    +- Glyph name: florin	Contours detected: 4	Expected: 1
    +
    +- Glyph name: AEacute	Contours detected: 18	Expected: 3
    +
    +- Glyph name: aeacute	Contours detected: 19	Expected: 4
    +
    +- Glyph name: Oslashacute	Contours detected: 21	Expected: 4
    +
    +- Glyph name: oslashacute	Contours detected: 12	Expected: 4
    +
    +- Glyph name: uni0218	Contours detected: 17	Expected: 2
    +
    +- Glyph name: uni0219	Contours detected: 18	Expected: 2
    +
    +- Glyph name: uni021A	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni021B	Contours detected: 6	Expected: 2
    +
    +- Glyph name: uni0237	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni02BC	Contours detected: 2	Expected: 1
    +
    +- Glyph name: circumflex	Contours detected: 4	Expected: 1
    +
    +- Glyph name: caron	Contours detected: 2	Expected: 1
    +
    +- Glyph name: breve	Contours detected: 5	Expected: 1
    +
    +- Glyph name: dotaccent	Contours detected: 2	Expected: 1
    +
    +- Glyph name: ring	Contours detected: 5	Expected: 2
    +
    +- Glyph name: ogonek	Contours detected: 2	Expected: 1
    +
    +- Glyph name: tilde	Contours detected: 3	Expected: 1
    +
    +- Glyph name: hungarumlaut	Contours detected: 7	Expected: 2
    +
    +- Glyph name: gravecomb	Contours detected: 2	Expected: 1
    +
    +- Glyph name: acutecomb	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni0302	Contours detected: 4	Expected: 1
    +
    +- Glyph name: tildecomb	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni0304	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni0306	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni0307	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0308	Contours detected: 10	Expected: 2
    +
    +- Glyph name: uni030A	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni030B	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uni030C	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0312	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni0326	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0327	Contours detected: 6	Expected: 1
    +
    +- Glyph name: uni0328	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0335	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0337	Contours detected: 8	Expected: 1
    +
    +- Glyph name: uni0338	Contours detected: 7	Expected: 1
    +
    +- Glyph name: uni0400	Contours detected: 6	Expected: 2
    +
    +- Glyph name: uni0401	Contours detected: 14	Expected: 3
    +
    +- Glyph name: uni0402	Contours detected: 16	Expected: 1
    +
    +- Glyph name: uni0403	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uni0404	Contours detected: 8	Expected: 1
    +
    +- Glyph name: uni0405	Contours detected: 14	Expected: 1
    +
    +- Glyph name: uni0406	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0407	Contours detected: 12	Expected: 3
    +
    +- Glyph name: uni0408	Contours detected: 4	Expected: 1
    +
    +- Glyph name: uni0409	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uni040A	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uni040B	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni040C	Contours detected: 16	Expected: 2
    +
    +- Glyph name: uni040D	Contours detected: 10	Expected: 2
    +
    +- Glyph name: uni040E	Contours detected: 9	Expected: 2
    +
    +- Glyph name: uni040F	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni0410	Contours detected: 12	Expected: 2
    +
    +- Glyph name: uni0411	Contours detected: 8	Expected: 2
    +
    +- Glyph name: uni0412	Contours detected: 7	Expected: 3
    +
    +- Glyph name: uni0413	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0414	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni0415	Contours detected: 4	Expected: 1
    +
    +- Glyph name: uni0416	Contours detected: 25	Expected: 1
    +
    +- Glyph name: uni0417	Contours detected: 9	Expected: 1
    +
    +- Glyph name: uni0418	Contours detected: 8	Expected: 1
    +
    +- Glyph name: uni0419	Contours detected: 12	Expected: 2
    +
    +- Glyph name: uni041A	Contours detected: 11	Expected: 1
    +
    +- Glyph name: uni041B	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni041C	Contours detected: 13	Expected: 1
    +
    +- Glyph name: uni041D	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni041E	Contours detected: 6	Expected: 2
    +
    +- Glyph name: uni041F	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0420	Contours detected: 5	Expected: 1 or 2
    +
    +- Glyph name: uni0421	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni0422	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0423	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni0424	Contours detected: 38	Expected: 3
    +
    +- Glyph name: uni0425	Contours detected: 16	Expected: 1
    +
    +- Glyph name: uni0426	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni0427	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni0428	Contours detected: 48	Expected: 1
    +
    +- Glyph name: uni0429	Contours detected: 47	Expected: 1
    +
    +- Glyph name: uni042A	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni042B	Contours detected: 16	Expected: 3
    +
    +- Glyph name: uni042C	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni042D	Contours detected: 7	Expected: 1
    +
    +- Glyph name: uni042E	Contours detected: 6	Expected: 2
    +
    +- Glyph name: uni042F	Contours detected: 15	Expected: 2
    +
    +- Glyph name: uni0430	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uni0431	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uni0432	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0433	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0434	Contours detected: 12	Expected: 2
    +
    +- Glyph name: uni0435	Contours detected: 8	Expected: 2
    +
    +- Glyph name: uni0436	Contours detected: 28	Expected: 1
    +
    +- Glyph name: uni0437	Contours detected: 7	Expected: 1
    +
    +- Glyph name: uni0438	Contours detected: 8	Expected: 1
    +
    +- Glyph name: uni0439	Contours detected: 12	Expected: 2
    +
    +- Glyph name: uni043A	Contours detected: 68	Expected: 1
    +
    +- Glyph name: uni043B	Contours detected: 13	Expected: 1
    +
    +- Glyph name: uni043C	Contours detected: 9	Expected: 1
    +
    +- Glyph name: uni043D	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni043E	Contours detected: 11	Expected: 2
    +
    +- Glyph name: uni043F	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0440	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uni0441	Contours detected: 4	Expected: 1
    +
    +- Glyph name: uni0442	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0443	Contours detected: 6	Expected: 1
    +
    +- Glyph name: uni0444	Contours detected: 27	Expected: 3
    +
    +- Glyph name: uni0445	Contours detected: 9	Expected: 1
    +
    +- Glyph name: uni0446	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni0447	Contours detected: 10	Expected: 1
    +
    +- Glyph name: uni0448	Contours detected: 34	Expected: 1
    +
    +- Glyph name: uni0449	Contours detected: 35	Expected: 1
    +
    +- Glyph name: uni044A	Contours detected: 6	Expected: 2
    +
    +- Glyph name: uni044B	Contours detected: 17	Expected: 3
    +
    +- Glyph name: uni044C	Contours detected: 6	Expected: 2
    +
    +- Glyph name: uni044D	Contours detected: 10	Expected: 1
    +
    +- Glyph name: uni044E	Contours detected: 12	Expected: 2
    +
    +- Glyph name: uni044F	Contours detected: 12	Expected: 2
    +
    +- Glyph name: uni0450	Contours detected: 10	Expected: 3
    +
    +- Glyph name: uni0451	Contours detected: 18	Expected: 4
    +
    +- Glyph name: uni0452	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni0453	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni0454	Contours detected: 10	Expected: 1
    +
    +- Glyph name: uni0455	Contours detected: 16	Expected: 1
    +
    +- Glyph name: uni0456	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0457	Contours detected: 12	Expected: 3
    +
    +- Glyph name: uni0458	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0459	Contours detected: 14	Expected: 2
    +
    +- Glyph name: uni045A	Contours detected: 8	Expected: 2
    +
    +- Glyph name: uni045B	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni045C	Contours detected: 71	Expected: 2
    +
    +- Glyph name: uni045D	Contours detected: 10	Expected: 2
    +
    +- Glyph name: uni045E	Contours detected: 10	Expected: 2
    +
    +- Glyph name: uni045F	Contours detected: 5	Expected: 1 or 2
    +
    +- Glyph name: uni0462	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uni0463	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni046A	Contours detected: 20	Expected: 2
    +
    +- Glyph name: uni046B	Contours detected: 20	Expected: 2
    +
    +- Glyph name: uni0472	Contours detected: 9	Expected: 3
    +
    +- Glyph name: uni0473	Contours detected: 13	Expected: 3
    +
    +- Glyph name: uni0474	Contours detected: 7	Expected: 1
    +
    +- Glyph name: uni0475	Contours detected: 8	Expected: 1
    +
    +- Glyph name: uni0490	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni0491	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni0492	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni0493	Contours detected: 4	Expected: 1
    +
    +- Glyph name: uni0494	Contours detected: 9	Expected: 1
    +
    +- Glyph name: uni0495	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni0496	Contours detected: 23	Expected: 1 or 2
    +
    +- Glyph name: uni0497	Contours detected: 24	Expected: 1 or 2
    +
    +- Glyph name: uni0498	Contours detected: 8	Expected: 1 or 2
    +
    +- Glyph name: uni0499	Contours detected: 6	Expected: 1 or 2
    +
    +- Glyph name: uni049A	Contours detected: 11	Expected: 1 or 2
    +
    +- Glyph name: uni049B	Contours detected: 12	Expected: 1 or 2
    +
    +- Glyph name: uni049C	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni049D	Contours detected: 6	Expected: 1
    +
    +- Glyph name: uni04A0	Contours detected: 12	Expected: 1
    +
    +- Glyph name: uni04A1	Contours detected: 14	Expected: 1
    +
    +- Glyph name: uni04A2	Contours detected: 3	Expected: 1 or 2
    +
    +- Glyph name: uni04A3	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: uni04A4	Contours detected: 6	Expected: 1
    +
    +- Glyph name: uni04A5	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni04AA	Contours detected: 3	Expected: 1 or 2
    +
    +- Glyph name: uni04AB	Contours detected: 5	Expected: 1 or 2
    +
    +- Glyph name: Ustraitcy	Contours detected: 6	Expected: 1
    +
    +- Glyph name: ustraitcy	Contours detected: 8	Expected: 1
    +
    +- Glyph name: Ustraitstrokecy	Contours detected: 8	Expected: 1
    +
    +- Glyph name: ustraitstrokecy	Contours detected: 9	Expected: 1
    +
    +- Glyph name: uni04B6	Contours detected: 3	Expected: 1 or 2
    +
    +- Glyph name: uni04B7	Contours detected: 8	Expected: 1 or 2
    +
    +- Glyph name: uni04B8	Contours detected: 15	Expected: 1
    +
    +- Glyph name: uni04B9	Contours detected: 7	Expected: 1
    +
    +- Glyph name: uni04BA	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04BB	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04C0	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04C1	Contours detected: 29	Expected: 2
    +
    +- Glyph name: uni04C2	Contours detected: 32	Expected: 2
    +
    +- Glyph name: uni04CB	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: uni04CC	Contours detected: 7	Expected: 1 or 2
    +
    +- Glyph name: uni04CF	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04D0	Contours detected: 16	Expected: 3
    +
    +- Glyph name: uni04D1	Contours detected: 11	Expected: 3
    +
    +- Glyph name: uni04D2	Contours detected: 22	Expected: 4
    +
    +- Glyph name: uni04D3	Contours detected: 17	Expected: 4
    +
    +- Glyph name: uni04D4	Contours detected: 13	Expected: 2
    +
    +- Glyph name: uni04D5	Contours detected: 16	Expected: 3
    +
    +- Glyph name: uni04D6	Contours detected: 8	Expected: 2
    +
    +- Glyph name: uni04D7	Contours detected: 12	Expected: 3
    +
    +- Glyph name: uni04D8	Contours detected: 18	Expected: 2
    +
    +- Glyph name: uni04D9	Contours detected: 15	Expected: 2
    +
    +- Glyph name: uni04DC	Contours detected: 35	Expected: 3
    +
    +- Glyph name: uni04DD	Contours detected: 38	Expected: 3
    +
    +- Glyph name: uni04DE	Contours detected: 19	Expected: 3
    +
    +- Glyph name: uni04DF	Contours detected: 17	Expected: 3
    +
    +- Glyph name: uni04E2	Contours detected: 11	Expected: 2
    +
    +- Glyph name: uni04E3	Contours detected: 11	Expected: 2
    +
    +- Glyph name: uni04E4	Contours detected: 18	Expected: 3
    +
    +- Glyph name: uni04E5	Contours detected: 18	Expected: 3
    +
    +- Glyph name: uni04E6	Contours detected: 16	Expected: 4
    +
    +- Glyph name: uni04E7	Contours detected: 21	Expected: 4
    +
    +- Glyph name: uni04E8	Contours detected: 7	Expected: 3
    +
    +- Glyph name: uni04E9	Contours detected: 13	Expected: 3
    +
    +- Glyph name: uni04EE	Contours detected: 8	Expected: 2
    +
    +- Glyph name: uni04EF	Contours detected: 9	Expected: 2
    +
    +- Glyph name: uni04F0	Contours detected: 15	Expected: 3
    +
    +- Glyph name: uni04F1	Contours detected: 16	Expected: 3
    +
    +- Glyph name: uni04F2	Contours detected: 12	Expected: 3
    +
    +- Glyph name: uni04F3	Contours detected: 13	Expected: 3
    +
    +- Glyph name: uni04F4	Contours detected: 13	Expected: 3
    +
    +- Glyph name: uni04F5	Contours detected: 20	Expected: 3
    +
    +- Glyph name: uni04F6	Contours detected: 3	Expected: 1 or 2
    +
    +- Glyph name: uni04F7	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: uni04F8	Contours detected: 26	Expected: 5
    +
    +- Glyph name: uni04F9	Contours detected: 27	Expected: 5
    +
    +- Glyph name: uni051A	Contours detected: 6	Expected: 2
    +
    +- Glyph name: uni051B	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uni051C	Contours detected: 13	Expected: 1
    +
    +- Glyph name: uni051D	Contours detected: 14	Expected: 1
    +
    +- Glyph name: uni0524	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni0525	Contours detected: 4	Expected: 1
    +
    +- Glyph name: Wgrave	Contours detected: 15	Expected: 2
    +
    +- Glyph name: wgrave	Contours detected: 16	Expected: 2
    +
    +- Glyph name: Wacute	Contours detected: 18	Expected: 2
    +
    +- Glyph name: wacute	Contours detected: 17	Expected: 2
    +
    +- Glyph name: Wdieresis	Contours detected: 17	Expected: 3
    +
    +- Glyph name: wdieresis	Contours detected: 24	Expected: 3
    +
    +- Glyph name: uni1E9E	Contours detected: 19	Expected: 1
    +
    +- Glyph name: Ygrave	Contours detected: 8	Expected: 2
    +
    +- Glyph name: ygrave	Contours detected: 8	Expected: 2
    +
    +- Glyph name: endash	Contours detected: 3	Expected: 1
    +
    +- Glyph name: emdash	Contours detected: 2	Expected: 1
    +
    +- Glyph name: quoteleft	Contours detected: 2	Expected: 1
    +
    +- Glyph name: quoteright	Contours detected: 3	Expected: 1
    +
    +- Glyph name: quotesinglbase	Contours detected: 2	Expected: 1
    +
    +- Glyph name: quotedblleft	Contours detected: 11	Expected: 2
    +
    +- Glyph name: quotedblright	Contours detected: 9	Expected: 2
    +
    +- Glyph name: quotedblbase	Contours detected: 8	Expected: 2
    +
    +- Glyph name: dagger	Contours detected: 3	Expected: 1 or 2
    +
    +- Glyph name: daggerdbl	Contours detected: 4	Expected: 1 or 3
    +
    +- Glyph name: bullet	Contours detected: 3	Expected: 1
    +
    +- Glyph name: ellipsis	Contours detected: 22	Expected: 3
    +
    +- Glyph name: perthousand	Contours detected: 52	Expected: 6 or 7
    +
    +- Glyph name: guilsinglleft	Contours detected: 4	Expected: 1
    +
    +- Glyph name: guilsinglright	Contours detected: 3	Expected: 1
    +
    +- Glyph name: fraction	Contours detected: 7	Expected: 1
    +
    +- Glyph name: uni2070	Contours detected: 10	Expected: 2 or 3
    +
    +- Glyph name: uni2074	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: uni2075	Contours detected: 4	Expected: 1
    +
    +- Glyph name: uni2076	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uni2077	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni2078	Contours detected: 7	Expected: 3
    +
    +- Glyph name: uni2079	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni207D	Contours detected: 10	Expected: 1
    +
    +- Glyph name: uni207E	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni2080	Contours detected: 10	Expected: 2 or 3
    +
    +- Glyph name: uni2081	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni2082	Contours detected: 4	Expected: 1
    +
    +- Glyph name: uni2083	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni2084	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: uni2085	Contours detected: 4	Expected: 1
    +
    +- Glyph name: uni2086	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uni2087	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni2088	Contours detected: 7	Expected: 3
    +
    +- Glyph name: uni2089	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni208D	Contours detected: 10	Expected: 1
    +
    +- Glyph name: uni208E	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni20AA	Contours detected: 24	Expected: 2
    +
    +- Glyph name: Euro	Contours detected: 8	Expected: 1 or 2
    +
    +- Glyph name: uni20AE	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni20B4	Contours detected: 5	Expected: 1 or 2
    +
    +- Glyph name: uni20B8	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni20B9	Contours detected: 8	Expected: 1
    +
    +- Glyph name: uni20BD	Contours detected: 9	Expected: 2
    +
    +- Glyph name: uni2116	Contours detected: 52	Expected: 3 or 4
    +
    +- Glyph name: trademark	Contours detected: 9	Expected: 2
    +
    +- Glyph name: estimated	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uni2153	Contours detected: 14	Expected: 3
    +
    +- Glyph name: uni2154	Contours detected: 16	Expected: 1 or 3
    +
    +- Glyph name: oneeighth	Contours detected: 16	Expected: 5
    +
    +- Glyph name: threeeighths	Contours detected: 19	Expected: 5
    +
    +- Glyph name: fiveeighths	Contours detected: 18	Expected: 5
    +
    +- Glyph name: seveneighths	Contours detected: 16	Expected: 5
    +
    +- Glyph name: partialdiff	Contours detected: 9	Expected: 2
    +
    +- Glyph name: uni2206	Contours detected: 8	Expected: 2
    +
    +- Glyph name: product	Contours detected: 3	Expected: 1
    +
    +- Glyph name: summation	Contours detected: 5	Expected: 1
    +
    +- Glyph name: minus	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni2215	Contours detected: 5	Expected: 1
    +
    +- Glyph name: radical	Contours detected: 9	Expected: 1
    +
    +- Glyph name: infinity	Contours detected: 13	Expected: 3
    +
    +- Glyph name: integral	Contours detected: 2	Expected: 1
    +
    +- Glyph name: approxequal	Contours detected: 8	Expected: 2
    +
    +- Glyph name: notequal	Contours detected: 5	Expected: 1
    +
    +- Glyph name: lessequal	Contours detected: 7	Expected: 2
    +
    +- Glyph name: greaterequal	Contours detected: 10	Expected: 2
    +
    +- Glyph name: lozenge	Contours detected: 8	Expected: 2
    +
    +- Glyph name: fi	Contours detected: 6	Expected: 1, 2 or 3
    +
    +- Glyph name: fl	Contours detected: 17	Expected: 1 or 2
    +
    +- Glyph name: A	Contours detected: 12	Expected: 2
    +
    +- Glyph name: AE	Contours detected: 13	Expected: 2
    +
    +- Glyph name: AEacute	Contours detected: 18	Expected: 3
    +
    +- Glyph name: Aacute	Contours detected: 17	Expected: 3
    +
    +- Glyph name: Abreve	Contours detected: 15	Expected: 3
    +
    +- Glyph name: Acircumflex	Contours detected: 16	Expected: 3
    +
    +- Glyph name: Adieresis	Contours detected: 16	Expected: 4
    +
    +- Glyph name: Agrave	Contours detected: 14	Expected: 3
    +
    +- Glyph name: Amacron	Contours detected: 16	Expected: 3
    +
    +- Glyph name: Aogonek	Contours detected: 10	Expected: 2 or 3
    +
    +- Glyph name: Aring	Contours detected: 18	Expected: 3 or 4
    +
    +- Glyph name: Atilde	Contours detected: 14	Expected: 3
    +
    +- Glyph name: B	Contours detected: 7	Expected: 2 or 3
    +
    +- Glyph name: C	Contours detected: 5	Expected: 1
    +
    +- Glyph name: Cacute	Contours detected: 10	Expected: 2
    +
    +- Glyph name: Ccaron	Contours detected: 8	Expected: 2
    +
    +- Glyph name: Ccedilla	Contours detected: 8	Expected: 1 or 2
    +
    +- Glyph name: Ccircumflex	Contours detected: 9	Expected: 2
    +
    +- Glyph name: Cdotaccent	Contours detected: 7	Expected: 2
    +
    +- Glyph name: D	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Dcaron	Contours detected: 7	Expected: 3
    +
    +- Glyph name: Dcroat	Contours detected: 13	Expected: 2
    +
    +- Glyph name: E	Contours detected: 4	Expected: 1
    +
    +- Glyph name: Eacute	Contours detected: 9	Expected: 2
    +
    +- Glyph name: Ebreve	Contours detected: 7	Expected: 2
    +
    +- Glyph name: Ecaron	Contours detected: 7	Expected: 2
    +
    +- Glyph name: Ecircumflex	Contours detected: 8	Expected: 2
    +
    +- Glyph name: Edieresis	Contours detected: 8	Expected: 3
    +
    +- Glyph name: Edotaccent	Contours detected: 6	Expected: 2
    +
    +- Glyph name: Egrave	Contours detected: 6	Expected: 2
    +
    +- Glyph name: Emacron	Contours detected: 8	Expected: 2
    +
    +- Glyph name: Eng	Contours detected: 10	Expected: 1
    +
    +- Glyph name: Eth	Contours detected: 17	Expected: 2
    +
    +- Glyph name: Euro	Contours detected: 8	Expected: 1 or 2
    +
    +- Glyph name: F	Contours detected: 4	Expected: 1
    +
    +- Glyph name: G	Contours detected: 9	Expected: 1
    +
    +- Glyph name: Gbreve	Contours detected: 12	Expected: 2
    +
    +- Glyph name: Gcircumflex	Contours detected: 13	Expected: 2
    +
    +- Glyph name: Gdotaccent	Contours detected: 11	Expected: 2
    +
    +- Glyph name: H	Contours detected: 3	Expected: 1
    +
    +- Glyph name: Hbar	Contours detected: 8	Expected: 2
    +
    +- Glyph name: Hcircumflex	Contours detected: 7	Expected: 2
    +
    +- Glyph name: I	Contours detected: 2	Expected: 1
    +
    +- Glyph name: IJ	Contours detected: 12	Expected: 1 or 2
    +
    +- Glyph name: Iacute	Contours detected: 7	Expected: 2
    +
    +- Glyph name: Ibreve	Contours detected: 5	Expected: 2
    +
    +- Glyph name: Icircumflex	Contours detected: 6	Expected: 2
    +
    +- Glyph name: Idieresis	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Idotaccent	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Igrave	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Imacron	Contours detected: 6	Expected: 2
    +
    +- Glyph name: Itilde	Contours detected: 4	Expected: 2
    +
    +- Glyph name: J	Contours detected: 4	Expected: 1
    +
    +- Glyph name: Jcircumflex	Contours detected: 8	Expected: 2
    +
    +- Glyph name: K	Contours detected: 11	Expected: 1 or 2
    +
    +- Glyph name: L	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Lacute	Contours detected: 7	Expected: 2
    +
    +- Glyph name: Lcaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ldot	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Lslash	Contours detected: 7	Expected: 1
    +
    +- Glyph name: M	Contours detected: 13	Expected: 1
    +
    +- Glyph name: N	Contours detected: 13	Expected: 1
    +
    +- Glyph name: Nacute	Contours detected: 18	Expected: 2
    +
    +- Glyph name: Ncaron	Contours detected: 16	Expected: 2
    +
    +- Glyph name: Ntilde	Contours detected: 15	Expected: 2
    +
    +- Glyph name: O	Contours detected: 6	Expected: 2
    +
    +- Glyph name: OE	Contours detected: 5	Expected: 2
    +
    +- Glyph name: Oacute	Contours detected: 11	Expected: 3
    +
    +- Glyph name: Ocircumflex	Contours detected: 10	Expected: 3
    +
    +- Glyph name: Odieresis	Contours detected: 10	Expected: 4
    +
    +- Glyph name: Ograve	Contours detected: 8	Expected: 3
    +
    +- Glyph name: Ohungarumlaut	Contours detected: 13	Expected: 4
    +
    +- Glyph name: Omacron	Contours detected: 10	Expected: 3
    +
    +- Glyph name: Oslash	Contours detected: 16	Expected: 2 or 3
    +
    +- Glyph name: Oslashacute	Contours detected: 21	Expected: 4
    +
    +- Glyph name: Otilde	Contours detected: 8	Expected: 3
    +
    +- Glyph name: P	Contours detected: 5	Expected: 1 or 2
    +
    +- Glyph name: Q	Contours detected: 6	Expected: 2
    +
    +- Glyph name: R	Contours detected: 9	Expected: 1 or 2
    +
    +- Glyph name: Racute	Contours detected: 14	Expected: 3
    +
    +- Glyph name: Rcaron	Contours detected: 12	Expected: 3
    +
    +- Glyph name: S	Contours detected: 14	Expected: 1
    +
    +- Glyph name: Sacute	Contours detected: 19	Expected: 2
    +
    +- Glyph name: Scaron	Contours detected: 17	Expected: 2
    +
    +- Glyph name: Scircumflex	Contours detected: 18	Expected: 2
    +
    +- Glyph name: T	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Tbar	Contours detected: 9	Expected: 1
    +
    +- Glyph name: Tcaron	Contours detected: 5	Expected: 2
    +
    +- Glyph name: Thorn	Contours detected: 5	Expected: 1 or 2
    +
    +- Glyph name: U	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Uacute	Contours detected: 7	Expected: 2
    +
    +- Glyph name: Ubreve	Contours detected: 5	Expected: 2
    +
    +- Glyph name: Ucircumflex	Contours detected: 6	Expected: 2
    +
    +- Glyph name: Udieresis	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Ugrave	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Uhungarumlaut	Contours detected: 9	Expected: 3
    +
    +- Glyph name: Umacron	Contours detected: 6	Expected: 2
    +
    +- Glyph name: Uogonek	Contours detected: 70	Expected: 1
    +
    +- Glyph name: Uring	Contours detected: 8	Expected: 3
    +
    +- Glyph name: Utilde	Contours detected: 4	Expected: 2
    +
    +- Glyph name: V	Contours detected: 8	Expected: 1
    +
    +- Glyph name: W	Contours detected: 13	Expected: 1 or 2
    +
    +- Glyph name: Wacute	Contours detected: 18	Expected: 2
    +
    +- Glyph name: Wcircumflex	Contours detected: 17	Expected: 2
    +
    +- Glyph name: Wdieresis	Contours detected: 17	Expected: 3
    +
    +- Glyph name: Wgrave	Contours detected: 15	Expected: 2
    +
    +- Glyph name: X	Contours detected: 16	Expected: 1
    +
    +- Glyph name: Y	Contours detected: 6	Expected: 1
    +
    +- Glyph name: Yacute	Contours detected: 11	Expected: 2
    +
    +- Glyph name: Ycircumflex	Contours detected: 10	Expected: 2
    +
    +- Glyph name: Ydieresis	Contours detected: 10	Expected: 3
    +
    +- Glyph name: Ygrave	Contours detected: 8	Expected: 2
    +
    +- Glyph name: Z	Contours detected: 3	Expected: 1
    +
    +- Glyph name: Zacute	Contours detected: 8	Expected: 2
    +
    +- Glyph name: Zcaron	Contours detected: 6	Expected: 2
    +
    +- Glyph name: Zdotaccent	Contours detected: 5	Expected: 2
    +
    +- Glyph name: a	Contours detected: 7	Expected: 2
    +
    +- Glyph name: aacute	Contours detected: 10	Expected: 3
    +
    +- Glyph name: abreve	Contours detected: 12	Expected: 3
    +
    +- Glyph name: acircumflex	Contours detected: 11	Expected: 3
    +
    +- Glyph name: acute	Contours detected: 3	Expected: 1
    +
    +- Glyph name: adieresis	Contours detected: 17	Expected: 4
    +
    +- Glyph name: ae	Contours detected: 16	Expected: 3
    +
    +- Glyph name: aeacute	Contours detected: 19	Expected: 4
    +
    +- Glyph name: agrave	Contours detected: 9	Expected: 3
    +
    +- Glyph name: amacron	Contours detected: 10	Expected: 3
    +
    +- Glyph name: ampersand	Contours detected: 14	Expected: 1, 2 or 3
    +
    +- Glyph name: aogonek	Contours detected: 8	Expected: 2
    +
    +- Glyph name: approxequal	Contours detected: 8	Expected: 2
    +
    +- Glyph name: aring	Contours detected: 12	Expected: 4
    +
    +- Glyph name: asciicircum	Contours detected: 5	Expected: 1
    +
    +- Glyph name: asciitilde	Contours detected: 2	Expected: 1
    +
    +- Glyph name: asterisk	Contours detected: 10	Expected: 1 or 4
    +
    +- Glyph name: at	Contours detected: 37	Expected: 2
    +
    +- Glyph name: atilde	Contours detected: 10	Expected: 3
    +
    +- Glyph name: b	Contours detected: 8	Expected: 2
    +
    +- Glyph name: backslash	Contours detected: 2	Expected: 1
    +
    +- Glyph name: bar	Contours detected: 2	Expected: 1
    +
    +- Glyph name: braceleft	Contours detected: 14	Expected: 1
    +
    +- Glyph name: braceright	Contours detected: 3	Expected: 1
    +
    +- Glyph name: bracketleft	Contours detected: 3	Expected: 1
    +
    +- Glyph name: bracketright	Contours detected: 4	Expected: 1
    +
    +- Glyph name: breve	Contours detected: 5	Expected: 1
    +
    +- Glyph name: brokenbar	Contours detected: 5	Expected: 2
    +
    +- Glyph name: bullet	Contours detected: 3	Expected: 1
    +
    +- Glyph name: c	Contours detected: 4	Expected: 1
    +
    +- Glyph name: cacute	Contours detected: 7	Expected: 2
    +
    +- Glyph name: caron	Contours detected: 2	Expected: 1
    +
    +- Glyph name: ccaron	Contours detected: 6	Expected: 2
    +
    +- Glyph name: ccedilla	Contours detected: 10	Expected: 1 or 2
    +
    +- Glyph name: ccircumflex	Contours detected: 8	Expected: 2
    +
    +- Glyph name: cdotaccent	Contours detected: 6	Expected: 2
    +
    +- Glyph name: cedilla	Contours detected: 6	Expected: 1
    +
    +- Glyph name: cent	Contours detected: 6	Expected: 1 or 2
    +
    +- Glyph name: circumflex	Contours detected: 4	Expected: 1
    +
    +- Glyph name: colon	Contours detected: 4	Expected: 2
    +
    +- Glyph name: comma	Contours detected: 2	Expected: 1
    +
    +- Glyph name: copyright	Contours detected: 48	Expected: 3
    +
    +- Glyph name: currency	Contours detected: 7	Expected: 2
    +
    +- Glyph name: d	Contours detected: 8	Expected: 2
    +
    +- Glyph name: dagger	Contours detected: 3	Expected: 1 or 2
    +
    +- Glyph name: daggerdbl	Contours detected: 4	Expected: 1 or 3
    +
    +- Glyph name: dcaron	Contours detected: 10	Expected: 3
    +
    +- Glyph name: dcroat	Contours detected: 9	Expected: 2
    +
    +- Glyph name: degree	Contours detected: 6	Expected: 2
    +
    +- Glyph name: dieresis	Contours detected: 10	Expected: 2
    +
    +- Glyph name: divide	Contours detected: 8	Expected: 3
    +
    +- Glyph name: dollar	Contours detected: 13	Expected: 1, 3 or 5
    +
    +- Glyph name: dotaccent	Contours detected: 2	Expected: 1
    +
    +- Glyph name: dotlessi	Contours detected: 2	Expected: 1
    +
    +- Glyph name: e	Contours detected: 8	Expected: 2
    +
    +- Glyph name: eacute	Contours detected: 11	Expected: 3
    +
    +- Glyph name: ebreve	Contours detected: 13	Expected: 3
    +
    +- Glyph name: ecaron	Contours detected: 10	Expected: 3
    +
    +- Glyph name: ecircumflex	Contours detected: 12	Expected: 3
    +
    +- Glyph name: edieresis	Contours detected: 18	Expected: 4
    +
    +- Glyph name: edotaccent	Contours detected: 10	Expected: 3
    +
    +- Glyph name: egrave	Contours detected: 10	Expected: 3
    +
    +- Glyph name: eight	Contours detected: 6	Expected: 3
    +
    +- Glyph name: ellipsis	Contours detected: 22	Expected: 3
    +
    +- Glyph name: emacron	Contours detected: 11	Expected: 3
    +
    +- Glyph name: emdash	Contours detected: 2	Expected: 1
    +
    +- Glyph name: endash	Contours detected: 3	Expected: 1
    +
    +- Glyph name: eng	Contours detected: 3	Expected: 1
    +
    +- Glyph name: eogonek	Contours detected: 9	Expected: 2
    +
    +- Glyph name: equal	Contours detected: 7	Expected: 2
    +
    +- Glyph name: estimated	Contours detected: 7	Expected: 2
    +
    +- Glyph name: eth	Contours detected: 8	Expected: 2
    +
    +- Glyph name: exclam	Contours detected: 4	Expected: 2
    +
    +- Glyph name: exclamdown	Contours detected: 7	Expected: 2
    +
    +- Glyph name: f	Contours detected: 5	Expected: 1
    +
    +- Glyph name: fi	Contours detected: 6	Expected: 3
    +
    +- Glyph name: five	Contours detected: 5	Expected: 1
    +
    +- Glyph name: fiveeighths	Contours detected: 18	Expected: 5
    +
    +- Glyph name: fl	Contours detected: 17	Expected: 2
    +
    +- Glyph name: four	Contours detected: 11	Expected: 1 or 2
    +
    +- Glyph name: fraction	Contours detected: 7	Expected: 1
    +
    +- Glyph name: g	Contours detected: 9	Expected: 2 or 3
    +
    +- Glyph name: gbreve	Contours detected: 14	Expected: 3 or 4
    +
    +- Glyph name: gcircumflex	Contours detected: 13	Expected: 3 or 4
    +
    +- Glyph name: gdotaccent	Contours detected: 11	Expected: 3 or 4
    +
    +- Glyph name: germandbls	Contours detected: 16	Expected: 1
    +
    +- Glyph name: grave	Contours detected: 2	Expected: 1
    +
    +- Glyph name: greater	Contours detected: 3	Expected: 1
    +
    +- Glyph name: greaterequal	Contours detected: 10	Expected: 2
    +
    +- Glyph name: guillemotleft	Contours detected: 11	Expected: 2
    +
    +- Glyph name: guillemotright	Contours detected: 13	Expected: 2
    +
    +- Glyph name: guilsinglleft	Contours detected: 4	Expected: 1
    +
    +- Glyph name: guilsinglright	Contours detected: 3	Expected: 1
    +
    +- Glyph name: h	Contours detected: 2	Expected: 1
    +
    +- Glyph name: hbar	Contours detected: 3	Expected: 1
    +
    +- Glyph name: hcircumflex	Contours detected: 6	Expected: 2
    +
    +- Glyph name: hungarumlaut	Contours detected: 7	Expected: 2
    +
    +- Glyph name: hyphen	Contours detected: 3	Expected: 1
    +
    +- Glyph name: i	Contours detected: 4	Expected: 2
    +
    +- Glyph name: iacute	Contours detected: 5	Expected: 2
    +
    +- Glyph name: ibreve	Contours detected: 7	Expected: 2
    +
    +- Glyph name: icircumflex	Contours detected: 6	Expected: 2
    +
    +- Glyph name: idieresis	Contours detected: 12	Expected: 3
    +
    +- Glyph name: igrave	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ij	Contours detected: 8	Expected: 3 or 4
    +
    +- Glyph name: imacron	Contours detected: 5	Expected: 2
    +
    +- Glyph name: infinity	Contours detected: 13	Expected: 3
    +
    +- Glyph name: integral	Contours detected: 2	Expected: 1
    +
    +- Glyph name: iogonek	Contours detected: 5	Expected: 2 or 3
    +
    +- Glyph name: itilde	Contours detected: 5	Expected: 2
    +
    +- Glyph name: j	Contours detected: 4	Expected: 2
    +
    +- Glyph name: jcircumflex	Contours detected: 7	Expected: 2
    +
    +- Glyph name: k	Contours detected: 12	Expected: 1 or 2
    +
    +- Glyph name: kgreenlandic	Contours detected: 12	Expected: 1 or 2
    +
    +- Glyph name: l	Contours detected: 2	Expected: 1
    +
    +- Glyph name: lacute	Contours detected: 5	Expected: 2
    +
    +- Glyph name: lcaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ldot	Contours detected: 4	Expected: 2
    +
    +- Glyph name: less	Contours detected: 2	Expected: 1
    +
    +- Glyph name: lessequal	Contours detected: 7	Expected: 2
    +
    +- Glyph name: logicalnot	Contours detected: 2	Expected: 1
    +
    +- Glyph name: longs	Contours detected: 3	Expected: 1
    +
    +- Glyph name: lozenge	Contours detected: 8	Expected: 2
    +
    +- Glyph name: lslash	Contours detected: 2	Expected: 1
    +
    +- Glyph name: m	Contours detected: 32	Expected: 1
    +
    +- Glyph name: macron	Contours detected: 3	Expected: 1
    +
    +- Glyph name: minus	Contours detected: 2	Expected: 1
    +
    +- Glyph name: multiply	Contours detected: 5	Expected: 1
    +
    +- Glyph name: n	Contours detected: 3	Expected: 1
    +
    +- Glyph name: nacute	Contours detected: 6	Expected: 2
    +
    +- Glyph name: napostrophe	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ncaron	Contours detected: 5	Expected: 2
    +
    +- Glyph name: nine	Contours detected: 9	Expected: 1 or 2
    +
    +- Glyph name: notequal	Contours detected: 5	Expected: 1
    +
    +- Glyph name: ntilde	Contours detected: 6	Expected: 2
    +
    +- Glyph name: numbersign	Contours detected: 15	Expected: 2
    +
    +- Glyph name: o	Contours detected: 11	Expected: 2
    +
    +- Glyph name: oacute	Contours detected: 14	Expected: 3
    +
    +- Glyph name: ocircumflex	Contours detected: 15	Expected: 3
    +
    +- Glyph name: odieresis	Contours detected: 21	Expected: 4
    +
    +- Glyph name: oe	Contours detected: 15	Expected: 3
    +
    +- Glyph name: ogonek	Contours detected: 2	Expected: 1
    +
    +- Glyph name: ograve	Contours detected: 13	Expected: 3
    +
    +- Glyph name: ohungarumlaut	Contours detected: 18	Expected: 4
    +
    +- Glyph name: omacron	Contours detected: 14	Expected: 3
    +
    +- Glyph name: one	Contours detected: 3	Expected: 1
    +
    +- Glyph name: oneeighth	Contours detected: 16	Expected: 5
    +
    +- Glyph name: onehalf	Contours detected: 13	Expected: 3
    +
    +- Glyph name: onequarter	Contours detected: 13	Expected: 3 or 4
    +
    +- Glyph name: ordfeminine	Contours detected: 4	Expected: 2 or 3
    +
    +- Glyph name: ordmasculine	Contours detected: 6	Expected: 2 or 3
    +
    +- Glyph name: oslash	Contours detected: 9	Expected: 3
    +
    +- Glyph name: oslashacute	Contours detected: 12	Expected: 4
    +
    +- Glyph name: otilde	Contours detected: 14	Expected: 3
    +
    +- Glyph name: p	Contours detected: 7	Expected: 2
    +
    +- Glyph name: paragraph	Contours detected: 30	Expected: 1, 2 or 3
    +
    +- Glyph name: parenleft	Contours detected: 2	Expected: 1
    +
    +- Glyph name: parenright	Contours detected: 3	Expected: 1
    +
    +- Glyph name: partialdiff	Contours detected: 9	Expected: 2
    +
    +- Glyph name: percent	Contours detected: 35	Expected: 5
    +
    +- Glyph name: period	Contours detected: 2	Expected: 1
    +
    +- Glyph name: periodcentered	Contours detected: 2	Expected: 1
    +
    +- Glyph name: perthousand	Contours detected: 52	Expected: 6 or 7
    +
    +- Glyph name: plus	Contours detected: 3	Expected: 1
    +
    +- Glyph name: plusminus	Contours detected: 6	Expected: 1 or 2
    +
    +- Glyph name: product	Contours detected: 3	Expected: 1
    +
    +- Glyph name: q	Contours detected: 7	Expected: 2
    +
    +- Glyph name: question	Contours detected: 4	Expected: 2
    +
    +- Glyph name: questiondown	Contours detected: 14	Expected: 2
    +
    +- Glyph name: quotedbl	Contours detected: 14	Expected: 2
    +
    +- Glyph name: quotedblbase	Contours detected: 8	Expected: 2
    +
    +- Glyph name: quotedblleft	Contours detected: 11	Expected: 2
    +
    +- Glyph name: quotedblright	Contours detected: 9	Expected: 2
    +
    +- Glyph name: quoteleft	Contours detected: 2	Expected: 1
    +
    +- Glyph name: quoteright	Contours detected: 3	Expected: 1
    +
    +- Glyph name: quotesinglbase	Contours detected: 2	Expected: 1
    +
    +- Glyph name: quotesingle	Contours detected: 2	Expected: 1
    +
    +- Glyph name: r	Contours detected: 2	Expected: 1
    +
    +- Glyph name: racute	Contours detected: 5	Expected: 2
    +
    +- Glyph name: radical	Contours detected: 9	Expected: 1
    +
    +- Glyph name: rcaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: registered	Contours detected: 43	Expected: 3 or 4
    +
    +- Glyph name: ring	Contours detected: 5	Expected: 2
    +
    +- Glyph name: s	Contours detected: 16	Expected: 1
    +
    +- Glyph name: sacute	Contours detected: 19	Expected: 2
    +
    +- Glyph name: scaron	Contours detected: 18	Expected: 2
    +
    +- Glyph name: scircumflex	Contours detected: 20	Expected: 2
    +
    +- Glyph name: section	Contours detected: 20	Expected: 2
    +
    +- Glyph name: semicolon	Contours detected: 6	Expected: 2
    +
    +- Glyph name: seven	Contours detected: 6	Expected: 1
    +
    +- Glyph name: seveneighths	Contours detected: 16	Expected: 5
    +
    +- Glyph name: six	Contours detected: 8	Expected: 1 or 2
    +
    +- Glyph name: slash	Contours detected: 5	Expected: 1
    +
    +- Glyph name: sterling	Contours detected: 8	Expected: 1 or 2
    +
    +- Glyph name: summation	Contours detected: 5	Expected: 1
    +
    +- Glyph name: t	Contours detected: 4	Expected: 1
    +
    +- Glyph name: tbar	Contours detected: 6	Expected: 1
    +
    +- Glyph name: tcaron	Contours detected: 6	Expected: 2
    +
    +- Glyph name: thorn	Contours detected: 8	Expected: 2
    +
    +- Glyph name: three	Contours detected: 3	Expected: 1
    +
    +- Glyph name: threeeighths	Contours detected: 19	Expected: 5
    +
    +- Glyph name: threequarters	Contours detected: 16	Expected: 3 or 4
    +
    +- Glyph name: tilde	Contours detected: 3	Expected: 1
    +
    +- Glyph name: trademark	Contours detected: 9	Expected: 2
    +
    +- Glyph name: two	Contours detected: 3	Expected: 1
    +
    +- Glyph name: u	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uacute	Contours detected: 8	Expected: 2
    +
    +- Glyph name: ubreve	Contours detected: 10	Expected: 2
    +
    +- Glyph name: ucircumflex	Contours detected: 9	Expected: 2
    +
    +- Glyph name: udieresis	Contours detected: 15	Expected: 3
    +
    +- Glyph name: ugrave	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uhungarumlaut	Contours detected: 12	Expected: 3
    +
    +- Glyph name: umacron	Contours detected: 8	Expected: 2
    +
    +- Glyph name: underscore	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni00B5	Contours detected: 4	Expected: 1
    +
    +- Glyph name: uni0122	Contours detected: 12	Expected: 2
    +
    +- Glyph name: uni0123	Contours detected: 12	Expected: 3 or 4
    +
    +- Glyph name: uni0136	Contours detected: 14	Expected: 2 or 3
    +
    +- Glyph name: uni0137	Contours detected: 14	Expected: 2 or 3
    +
    +- Glyph name: uni013B	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni013C	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0145	Contours detected: 16	Expected: 2
    +
    +- Glyph name: uni0146	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni0156	Contours detected: 12	Expected: 3
    +
    +- Glyph name: uni0157	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0218	Contours detected: 17	Expected: 2
    +
    +- Glyph name: uni0219	Contours detected: 18	Expected: 2
    +
    +- Glyph name: uni021A	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni021B	Contours detected: 6	Expected: 2
    +
    +- Glyph name: uni0237	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni02BC	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0302	Contours detected: 4	Expected: 1
    +
    +- Glyph name: uni0304	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni0306	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni0307	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0308	Contours detected: 10	Expected: 2
    +
    +- Glyph name: uni030A	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni030B	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uni030C	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0312	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni0326	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0327	Contours detected: 6	Expected: 1
    +
    +- Glyph name: uni0328	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0335	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0337	Contours detected: 8	Expected: 1
    +
    +- Glyph name: uni0338	Contours detected: 7	Expected: 1
    +
    +- Glyph name: uni0400	Contours detected: 6	Expected: 2
    +
    +- Glyph name: uni0401	Contours detected: 14	Expected: 3
    +
    +- Glyph name: uni0402	Contours detected: 16	Expected: 1
    +
    +- Glyph name: uni0403	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uni0404	Contours detected: 8	Expected: 1
    +
    +- Glyph name: uni0405	Contours detected: 14	Expected: 1
    +
    +- Glyph name: uni0406	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0407	Contours detected: 12	Expected: 3
    +
    +- Glyph name: uni0408	Contours detected: 4	Expected: 1
    +
    +- Glyph name: uni0409	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uni040A	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uni040B	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni040C	Contours detected: 16	Expected: 2
    +
    +- Glyph name: uni040D	Contours detected: 10	Expected: 2
    +
    +- Glyph name: uni040E	Contours detected: 9	Expected: 2
    +
    +- Glyph name: uni040F	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni0410	Contours detected: 12	Expected: 2
    +
    +- Glyph name: uni0411	Contours detected: 8	Expected: 2
    +
    +- Glyph name: uni0412	Contours detected: 7	Expected: 3
    +
    +- Glyph name: uni0413	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0414	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni0415	Contours detected: 4	Expected: 1
    +
    +- Glyph name: uni0416	Contours detected: 25	Expected: 1
    +
    +- Glyph name: uni0417	Contours detected: 9	Expected: 1
    +
    +- Glyph name: uni0418	Contours detected: 8	Expected: 1
    +
    +- Glyph name: uni0419	Contours detected: 12	Expected: 2
    +
    +- Glyph name: uni041A	Contours detected: 11	Expected: 1
    +
    +- Glyph name: uni041B	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni041C	Contours detected: 13	Expected: 1
    +
    +- Glyph name: uni041D	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni041E	Contours detected: 6	Expected: 2
    +
    +- Glyph name: uni041F	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0420	Contours detected: 5	Expected: 1 or 2
    +
    +- Glyph name: uni0421	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni0422	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0423	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni0424	Contours detected: 38	Expected: 3
    +
    +- Glyph name: uni0425	Contours detected: 16	Expected: 1
    +
    +- Glyph name: uni0426	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni0427	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni0428	Contours detected: 48	Expected: 1
    +
    +- Glyph name: uni0429	Contours detected: 47	Expected: 1
    +
    +- Glyph name: uni042A	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni042B	Contours detected: 16	Expected: 3
    +
    +- Glyph name: uni042C	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni042D	Contours detected: 7	Expected: 1
    +
    +- Glyph name: uni042E	Contours detected: 6	Expected: 2
    +
    +- Glyph name: uni042F	Contours detected: 15	Expected: 2
    +
    +- Glyph name: uni0430	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uni0431	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uni0432	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0433	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0434	Contours detected: 12	Expected: 2
    +
    +- Glyph name: uni0435	Contours detected: 8	Expected: 2
    +
    +- Glyph name: uni0436	Contours detected: 28	Expected: 1
    +
    +- Glyph name: uni0437	Contours detected: 7	Expected: 1
    +
    +- Glyph name: uni0438	Contours detected: 8	Expected: 1
    +
    +- Glyph name: uni0439	Contours detected: 12	Expected: 2
    +
    +- Glyph name: uni043A	Contours detected: 68	Expected: 1
    +
    +- Glyph name: uni043B	Contours detected: 13	Expected: 1
    +
    +- Glyph name: uni043C	Contours detected: 9	Expected: 1
    +
    +- Glyph name: uni043D	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni043E	Contours detected: 11	Expected: 2
    +
    +- Glyph name: uni043F	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0440	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uni0441	Contours detected: 4	Expected: 1
    +
    +- Glyph name: uni0442	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0443	Contours detected: 6	Expected: 1
    +
    +- Glyph name: uni0444	Contours detected: 27	Expected: 3
    +
    +- Glyph name: uni0445	Contours detected: 9	Expected: 1
    +
    +- Glyph name: uni0446	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni0447	Contours detected: 10	Expected: 1
    +
    +- Glyph name: uni0448	Contours detected: 34	Expected: 1
    +
    +- Glyph name: uni0449	Contours detected: 35	Expected: 1
    +
    +- Glyph name: uni044A	Contours detected: 6	Expected: 2
    +
    +- Glyph name: uni044B	Contours detected: 17	Expected: 3
    +
    +- Glyph name: uni044C	Contours detected: 6	Expected: 2
    +
    +- Glyph name: uni044D	Contours detected: 10	Expected: 1
    +
    +- Glyph name: uni044E	Contours detected: 12	Expected: 2
    +
    +- Glyph name: uni044F	Contours detected: 12	Expected: 2
    +
    +- Glyph name: uni0450	Contours detected: 10	Expected: 3
    +
    +- Glyph name: uni0451	Contours detected: 18	Expected: 4
    +
    +- Glyph name: uni0452	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni0453	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni0454	Contours detected: 10	Expected: 1
    +
    +- Glyph name: uni0455	Contours detected: 16	Expected: 1
    +
    +- Glyph name: uni0456	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0457	Contours detected: 12	Expected: 3
    +
    +- Glyph name: uni0458	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0459	Contours detected: 14	Expected: 2
    +
    +- Glyph name: uni045A	Contours detected: 8	Expected: 2
    +
    +- Glyph name: uni045B	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni045C	Contours detected: 71	Expected: 2
    +
    +- Glyph name: uni045D	Contours detected: 10	Expected: 2
    +
    +- Glyph name: uni045E	Contours detected: 10	Expected: 2
    +
    +- Glyph name: uni045F	Contours detected: 5	Expected: 1 or 2
    +
    +- Glyph name: uni0462	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uni0463	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni046A	Contours detected: 20	Expected: 2
    +
    +- Glyph name: uni046B	Contours detected: 20	Expected: 2
    +
    +- Glyph name: uni0472	Contours detected: 9	Expected: 3
    +
    +- Glyph name: uni0473	Contours detected: 13	Expected: 3
    +
    +- Glyph name: uni0474	Contours detected: 7	Expected: 1
    +
    +- Glyph name: uni0475	Contours detected: 8	Expected: 1
    +
    +- Glyph name: uni0490	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni0491	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni0492	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni0493	Contours detected: 4	Expected: 1
    +
    +- Glyph name: uni0494	Contours detected: 9	Expected: 1
    +
    +- Glyph name: uni0495	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni0496	Contours detected: 23	Expected: 1 or 2
    +
    +- Glyph name: uni0497	Contours detected: 24	Expected: 1 or 2
    +
    +- Glyph name: uni0498	Contours detected: 8	Expected: 1 or 2
    +
    +- Glyph name: uni0499	Contours detected: 6	Expected: 1 or 2
    +
    +- Glyph name: uni049A	Contours detected: 11	Expected: 1 or 2
    +
    +- Glyph name: uni049B	Contours detected: 12	Expected: 1 or 2
    +
    +- Glyph name: uni049C	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uni049D	Contours detected: 6	Expected: 1
    +
    +- Glyph name: uni04A0	Contours detected: 12	Expected: 1
    +
    +- Glyph name: uni04A1	Contours detected: 14	Expected: 1
    +
    +- Glyph name: uni04A2	Contours detected: 3	Expected: 1 or 2
    +
    +- Glyph name: uni04A3	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: uni04A4	Contours detected: 6	Expected: 1
    +
    +- Glyph name: uni04A5	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni04AA	Contours detected: 3	Expected: 1 or 2
    +
    +- Glyph name: uni04AB	Contours detected: 5	Expected: 1 or 2
    +
    +- Glyph name: uni04B6	Contours detected: 3	Expected: 1 or 2
    +
    +- Glyph name: uni04B7	Contours detected: 8	Expected: 1 or 2
    +
    +- Glyph name: uni04B8	Contours detected: 15	Expected: 1
    +
    +- Glyph name: uni04B9	Contours detected: 7	Expected: 1
    +
    +- Glyph name: uni04BA	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04BB	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04C0	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04C1	Contours detected: 29	Expected: 2
    +
    +- Glyph name: uni04C2	Contours detected: 32	Expected: 2
    +
    +- Glyph name: uni04CB	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: uni04CC	Contours detected: 7	Expected: 1 or 2
    +
    +- Glyph name: uni04CF	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04D0	Contours detected: 16	Expected: 3
    +
    +- Glyph name: uni04D1	Contours detected: 11	Expected: 3
    +
    +- Glyph name: uni04D2	Contours detected: 22	Expected: 4
    +
    +- Glyph name: uni04D3	Contours detected: 17	Expected: 4
    +
    +- Glyph name: uni04D4	Contours detected: 13	Expected: 2
    +
    +- Glyph name: uni04D5	Contours detected: 16	Expected: 3
    +
    +- Glyph name: uni04D6	Contours detected: 8	Expected: 2
    +
    +- Glyph name: uni04D7	Contours detected: 12	Expected: 3
    +
    +- Glyph name: uni04D8	Contours detected: 18	Expected: 2
    +
    +- Glyph name: uni04D9	Contours detected: 15	Expected: 2
    +
    +- Glyph name: uni04DC	Contours detected: 35	Expected: 3
    +
    +- Glyph name: uni04DD	Contours detected: 38	Expected: 3
    +
    +- Glyph name: uni04DE	Contours detected: 19	Expected: 3
    +
    +- Glyph name: uni04DF	Contours detected: 17	Expected: 3
    +
    +- Glyph name: uni04E2	Contours detected: 11	Expected: 2
    +
    +- Glyph name: uni04E3	Contours detected: 11	Expected: 2
    +
    +- Glyph name: uni04E4	Contours detected: 18	Expected: 3
    +
    +- Glyph name: uni04E5	Contours detected: 18	Expected: 3
    +
    +- Glyph name: uni04E6	Contours detected: 16	Expected: 4
    +
    +- Glyph name: uni04E7	Contours detected: 21	Expected: 4
    +
    +- Glyph name: uni04E8	Contours detected: 7	Expected: 3
    +
    +- Glyph name: uni04E9	Contours detected: 13	Expected: 3
    +
    +- Glyph name: uni04EE	Contours detected: 8	Expected: 2
    +
    +- Glyph name: uni04EF	Contours detected: 9	Expected: 2
    +
    +- Glyph name: uni04F0	Contours detected: 15	Expected: 3
    +
    +- Glyph name: uni04F1	Contours detected: 16	Expected: 3
    +
    +- Glyph name: uni04F2	Contours detected: 12	Expected: 3
    +
    +- Glyph name: uni04F3	Contours detected: 13	Expected: 3
    +
    +- Glyph name: uni04F4	Contours detected: 13	Expected: 3
    +
    +- Glyph name: uni04F5	Contours detected: 20	Expected: 3
    +
    +- Glyph name: uni04F6	Contours detected: 3	Expected: 1 or 2
    +
    +- Glyph name: uni04F7	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: uni04F8	Contours detected: 26	Expected: 5
    +
    +- Glyph name: uni04F9	Contours detected: 27	Expected: 5
    +
    +- Glyph name: uni051A	Contours detected: 6	Expected: 2
    +
    +- Glyph name: uni051B	Contours detected: 7	Expected: 2
    +
    +- Glyph name: uni051C	Contours detected: 13	Expected: 1
    +
    +- Glyph name: uni051D	Contours detected: 14	Expected: 1
    +
    +- Glyph name: uni0524	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni0525	Contours detected: 4	Expected: 1
    +
    +- Glyph name: uni1E9E	Contours detected: 19	Expected: 1
    +
    +- Glyph name: uni20AA	Contours detected: 24	Expected: 2
    +
    +- Glyph name: uni20AE	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni20B4	Contours detected: 5	Expected: 1 or 2
    +
    +- Glyph name: uni20B8	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni20B9	Contours detected: 8	Expected: 1
    +
    +- Glyph name: uni20BD	Contours detected: 9	Expected: 2
    +
    +- Glyph name: uni2116	Contours detected: 52	Expected: 3 or 4
    +
    +- Glyph name: uni2206	Contours detected: 8	Expected: 2
    +
    +- Glyph name: uni2215	Contours detected: 5	Expected: 1
    +
    +- Glyph name: uogonek	Contours detected: 7	Expected: 1
    +
    +- Glyph name: uring	Contours detected: 10	Expected: 3
    +
    +- Glyph name: utilde	Contours detected: 8	Expected: 2
    +
    +- Glyph name: v	Contours detected: 8	Expected: 1
    +
    +- Glyph name: w	Contours detected: 14	Expected: 1
    +
    +- Glyph name: wacute	Contours detected: 17	Expected: 2
    +
    +- Glyph name: wcircumflex	Contours detected: 18	Expected: 2
    +
    +- Glyph name: wdieresis	Contours detected: 24	Expected: 3
    +
    +- Glyph name: wgrave	Contours detected: 16	Expected: 2
    +
    +- Glyph name: x	Contours detected: 9	Expected: 1
    +
    +- Glyph name: y	Contours detected: 6	Expected: 1
    +
    +- Glyph name: yacute	Contours detected: 9	Expected: 2
    +
    +- Glyph name: ycircumflex	Contours detected: 10	Expected: 2
    +
    +- Glyph name: ydieresis	Contours detected: 16	Expected: 3
    +
    +- Glyph name: yen	Contours detected: 9	Expected: 1 or 2
    +
    +- Glyph name: ygrave	Contours detected: 8	Expected: 2
    +
    +- Glyph name: z	Contours detected: 4	Expected: 1
    +
    +- Glyph name: zacute	Contours detected: 7	Expected: 2
    +
    +- Glyph name: zcaron	Contours detected: 6	Expected: 2
    +
    +- Glyph name: zdotaccent	Contours detected: 6	Expected: 2
    +
    +- Glyph name: zero	Contours detected: 6	Expected: 2 or 3
    +
    +

    [code: contour-count]

    +
+

Check math signs have the same width.

+
Check ID: com.google.fonts/check/math_signs_width
+ +
⚠️ RubikDoodleShadow-Regular.ttf
  • ⚠️ WARN

    The most common width is 538 among a set of 2 math glyphs. +The following math glyphs have a different width, though:

    +

    Width = 594: +plus

    +

    Width = 563: +equal

    +

    Width = 564: +logicalnot

    +

    Width = 576: +plusminus

    +

    Width = 639: +multiply

    +

    Width = 517: +divide

    +

    Width = 642: +minus

    +

    Width = 551: +approxequal, notequal

    +

    Width = 556: +greaterequal, lessequal +[code: width-outliers]

    +
+

Section: Shaping Checks

+⚠️⚠️⏩⏩⏩ +

Ensure dotted circle glyph is present and can attach marks.

+
Check ID: com.google.fonts/check/dotted_circle
+ +
⚠️ RubikDoodleShadow-Regular.ttf
  • ⚠️ WARN

    No dotted circle glyph present [code: missing-dotted-circle]

    +
+

Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.

+
Check ID: com.google.fonts/check/soft_dotted
+ +
⚠️ RubikDoodleShadow-Regular.ttf
  • ⚠️ WARN

    The dot of soft dotted characters used in orthographies must disappear in the following strings: į̀ į́ į̂ į̃ į̄ į̌ і́

    +

    The dot of soft dotted characters should disappear in other cases, for example: i̦̒ j̦̒ į̆ į̇ į̈ į̊ į̋ į̒ į̦̒ į̧̒ į̨̒ į̵̀ į̵́ į̵̂ į̵̃ į̵̄ į̵̆ į̵̇ į̵̈ į̵̊

    +

    Your font fully covers the following languages that require the soft-dotted feature: Belarusian (Cyrl, 10,064,517 speakers), Dutch (Latn, 31,709,104 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Lithuanian (Latn, 2,357,094 speakers).

    +

    Your font does not cover the following languages that require the soft-dotted feature: Ma’di (Latn, 584,000 speakers), Ejagham (Latn, 120,000 speakers), Gulay (Latn, 250,478 speakers), Lugbara (Latn, 2,200,000 speakers), Aghem (Latn, 38,843 speakers), Avokaya (Latn, 100,000 speakers), Mango (Latn, 77,000 speakers), Kom (Latn, 360,685 speakers), Nateni (Latn, 100,000 speakers), Navajo (Latn, 166,319 speakers), Ebira (Latn, 2,200,000 speakers), Basaa (Latn, 332,940 speakers), Igbo (Latn, 27,823,640 speakers), Sar (Latn, 500,000 speakers), Dan (Latn, 1,099,244 speakers), Koonzime (Latn, 40,000 speakers). [code: soft-dotted]

    +
+
+ + \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikdoodleshadow-report.json b/docs/fontbakery-reports/rubikdoodleshadow-report.json new file mode 100644 index 0000000..6c0f553 --- /dev/null +++ b/docs/fontbakery-reports/rubikdoodleshadow-report.json @@ -0,0 +1 @@ +{"result": {"FAIL": 4, "INFO": 9, "PASS": 160, "SKIP": 64, "WARN": 10}, "sections": [{"checks": [{"description": "Fonts have equal codepoint coverage", "experimental": "Since 2023/Oct/13", "key": ["", "", []], "logs": [{"message": "All font files in this family have an equivalent encoded glyphset.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Ensure that all variable font files have the same set of axes and axis ranges.", "key": ["", "", []], "logs": [{"message": "Unfulfilled Conditions: VFs", "status": "SKIP", "traceback": null}], "rationale": "\n In order to facilitate the construction of intuitive and friendly user\n interfaces, all variable font files in a given family should have the same set\n of variation axes. Also, each axis must have a consistent setting of min/max\n value ranges accross all the files.\n ", "result": "SKIP"}, {"description": "All tabular figures must have the same width across the RIBBI-family.", "key": ["", "", []], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Tabular figures need to have the same metrics in all styles in order to allow\n tables to be set with proper typographic control, but to maintain the placement\n of decimals and numeric columns between rows.\n\n Here's a good explanation of this:\n https://www.typography.com/techniques/fonts-for-financials/#tabular-figs\n ", "result": "PASS"}, {"description": "Does font file include unacceptable control character glyphs?", "key": ["", "", []], "logs": [{"message": "Unacceptable control characters were not identified.", "status": "PASS", "traceback": null}], "rationale": "\n Use of some unacceptable control characters in the U+0000 - U+001F range can\n lead to rendering issues on some platforms.\n\n Acceptable control characters are defined as .null (U+0000) and\n CR (U+000D) for this test.\n ", "result": "PASS"}, {"description": "Ensure Italic styles have Roman counterparts.", "key": ["", "", []], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n For each font family on Google Fonts, every Italic style must have\n a Roman sibling.\n\n This kind of problem was first observed at [1] where the Bold style was\n missing but BoldItalic was included.\n\n [1] https://github.com/google/fonts/pull/1482\n ", "result": "PASS"}, {"description": "Check axis ordering on the STAT table.", "key": ["", "", []], "logs": [{"message": "This font does not have a STAT table: /home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf [code: missing-STAT]", "status": "SKIP", "traceback": null}, {"message": "From a total of 1 font files, 1 of them (100.00%) lack a STAT table.\n\n\tAnd these are the most common STAT axis orderings:\n\t [code: summary]", "status": "INFO", "traceback": null}], "rationale": "\n This is (for now) a merely informative check to detect what's the axis ordering\n declared on the STAT table of fonts in the Google Fonts collection.\n\n We may later update this to enforce some unified axis ordering scheme,\n yet to be determined.\n ", "result": "INFO"}, {"description": "Check README.md has a sample image.", "key": ["", "", []], "logs": [{"message": "Unfulfilled Conditions: readme_contents, readme_directory", "status": "SKIP", "traceback": null}], "rationale": "\n In order to showcase what a font family looks like, the project's README.md\n file should ideally include a sample image and highlight it in the upper\n portion of the document, no more than 10 lines away from the top of the file.\n ", "result": "SKIP"}, {"description": "Checking file is named canonically.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font filename is correct, \"RubikDoodleShadow-Regular.ttf\".", "status": "PASS", "traceback": null}], "rationale": "\n A font's filename must be composed as \"-.ttf\":\n\n - Nunito-Regular.ttf\n\n - Oswald-BoldItalic.ttf\n\n\n Variable fonts must list the axis tags in alphabetical order in\n square brackets and separated by commas:\n\n - Roboto[wdth,wght].ttf\n\n - Familyname-Italic[wght].ttf\n ", "result": "PASS"}, {"description": "Does DESCRIPTION file contain broken links?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All links in the DESCRIPTION file look good!", "status": "PASS", "traceback": null}], "rationale": "\n The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font\n family webpage on the Google Fonts website. For that reason, all hyperlinks\n in it must be properly working.\n ", "result": "PASS"}, {"description": "URLs on DESCRIPTION file must not display http(s) prefix.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All good!", "status": "PASS", "traceback": null}], "rationale": "\n The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font\n family webpage on the Google Fonts website.\n\n Google Fonts has a content formatting policy for that snippet that expects the\n text content of anchors not to include the http:// or https:// prefixes.\n ", "result": "PASS"}, {"description": "Does DESCRIPTION file contain a upstream Git repo URL?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Found a git repo URL: https://github.com/NaN-xyz/Glyph-Filters [code: url-found]", "status": "INFO", "traceback": null}, {"message": "Found a git repo URL: https://github.com/NaN-xyz/Rubik-Filtered [code: url-found]", "status": "INFO", "traceback": null}, {"message": "Looks great!", "status": "PASS", "traceback": null}], "rationale": "\n The contents of the DESCRIPTION.en-us.html file are displayed on the\n Google Fonts website in the about section of each font family specimen page.\n\n Since all of the Google Fonts collection is composed of libre-licensed fonts,\n this check enforces a policy that there must be a hypertext link in that page\n directing users to the repository where the font project files are\n made available.\n\n Such hosting is typically done on sites like Github, Gitlab, GNU Savannah or\n any other git-based version control service.\n ", "result": "INFO"}, {"description": "Is this a proper HTML snippet?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/DESCRIPTION.en_us.html is a propper HTML file.", "status": "PASS", "traceback": null}], "rationale": "\n Sometimes people write malformed HTML markup. This check should ensure the\n file is good.\n\n Additionally, when packaging families for being pushed to the `google/fonts`\n git repo, if there is no DESCRIPTION.en_us.html file, some older versions of\n the `add_font.py` tool insert a placeholder description file which contains\n invalid html. This file needs to either be replaced with an existing\n description file or edited by hand.\n ", "result": "PASS"}, {"description": "DESCRIPTION.en_us.html must have more than 200 bytes.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "DESCRIPTION.en_us.html is larger than 200 bytes.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "DESCRIPTION.en_us.html should end in a linebreak.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": ":-)", "status": "PASS", "traceback": null}], "rationale": "\n Some older text-handling tools sometimes misbehave if the last line of data\n in a text file is not terminated with a newline character (also known as '\\n').\n\n We know that this is a very small detail, but for the sake of keeping all\n DESCRIPTION.en_us.html files uniformly formatted throughout the GFonts\n collection, we chose to adopt the practice of placing this final linebreak\n character on them.\n ", "result": "PASS"}, {"description": "Check METADATA.pb parse correctly.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb parsed successfuly.", "status": "PASS", "traceback": null}], "rationale": "\n The purpose of this check is to ensure that the METADATA.pb file is not\n malformed.\n ", "result": "PASS"}, {"description": "Font designer field in METADATA.pb must not be 'unknown'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font designer field is not 'unknown'.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font designer field in METADATA.pb must not contain 'Multiple designers'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good.", "status": "PASS", "traceback": null}], "rationale": "\n For a while the string \"Multiple designers\" was used as a placeholder on\n METADATA.pb files. We should replace all those instances with actual designer\n names so that proper credits are displayed on the Google Fonts family\n specimen pages.\n\n If there's more than a single designer, the designer names must be\n separated by commas.\n ", "result": "PASS"}, {"description": "Multiple values in font designer field in METADATA.pb must be separated by commas.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good.", "status": "PASS", "traceback": null}], "rationale": "\n We must use commas instead of forward slashes because the server-side code\n at the fonts.google.com directory will segment the string on the commas into\n a list of names and display the first item in the list as the\n \"principal designer\" while the remaining names are identified as \"contributors\".\n\n See eg https://fonts.google.com/specimen/Rubik\n ", "result": "PASS"}, {"description": "Does METADATA.pb copyright field contain broken links?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All links in the METADATA.pb file look good!", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Ensure METADATA.pb lists all font binaries.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n The set of font binaries available, except the ones on a \"static\" subdir,\n must match exactly those declared on the METADATA.pb file.\n\n Also, to avoid confusion, we expect that font files (other than statics)\n are not placed on subdirectories.\n ", "result": "PASS"}, {"description": "Ensure METADATA.pb category field is valid.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK!", "status": "PASS", "traceback": null}], "rationale": "\n There are only five acceptable values for the category field in a METADATA.pb\n file:\n\n - MONOSPACE\n\n - SANS_SERIF\n\n - SERIF\n\n - DISPLAY\n\n - HANDWRITING\n\n This check is meant to avoid typos in this field.\n ", "result": "PASS"}, {"description": "Checking OS/2 fsType does not impose restrictions.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 fsType is properly set to zero.", "status": "PASS", "traceback": null}], "rationale": "\n The fsType in the OS/2 table is a legacy DRM-related field. Fonts in the\n Google Fonts collection must have it set to zero (also known as\n \"Installable Embedding\"). This setting indicates that the fonts can be\n embedded in documents and permanently installed by applications on\n remote systems.\n\n More detailed info is available at:\n https://docs.microsoft.com/en-us/typography/opentype/spec/os2#fstype\n ", "result": "PASS"}, {"description": "Checking OS/2 achVendID.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx\n [code: unknown]", "status": "WARN", "traceback": null}], "rationale": "\n Microsoft keeps a list of font vendors and their respective contact info. This\n list is updated regularly and is indexed by a 4-char \"Vendor ID\" which is\n stored in the achVendID field of the OS/2 table.\n\n Registering your ID is not mandatory, but it is a good practice since some\n applications may display the type designer / type foundry contact info on some\n dialog and also because that info will be visible on Microsoft's website:\n\n https://docs.microsoft.com/en-us/typography/vendors/\n\n This check verifies whether or not a given font's vendor ID is registered in\n that list or if it has some of the default values used by the most common\n font editors.\n\n Each new FontBakery release includes a cached copy of that list of vendor IDs.\n If you registered recently, you're safe to ignore warnings emitted by this\n check, since your ID will soon be included in one of our upcoming releases.\n ", "result": "WARN"}, {"description": "Check Google Fonts glyph coverage.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Google Fonts expects that fonts in its collection support at least the minimal\n set of characters defined in the `GF-latin-core` glyph-set.\n ", "result": "PASS"}, {"description": "Check for METADATA subsets with zero support.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n This check ensures that the subsets specified on a METADATA.pb file are\n actually supported (even if only partially) by the font files.\n\n Subsets for which none of the codepoints are supported will cause the\n check to FAIL.\n ", "result": "PASS", "severity": 10}, {"description": "Check for codepoints not covered by METADATA subsets.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The following codepoints supported by the font are not covered by\n any subsets defined in the font's metadata file, and will never\n be served. You can solve this by either manually adding additional\n subset declarations to METADATA.pb, or by editing the glyphset\n definitions.\n\n * U+02C7 CARON: try adding one of: canadian-aboriginal, yi, tifinagh\n * U+02D8 BREVE: try adding one of: canadian-aboriginal, yi\n * U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi\n * U+02DB OGONEK: try adding one of: canadian-aboriginal, yi\n * U+02DD DOUBLE ACUTE ACCENT: not included in any glyphset definition\n * U+0306 COMBINING BREVE: try adding one of: tifinagh, old-permic\n * U+030A COMBINING RING ABOVE: try adding syriac\n * U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage\n * U+030C COMBINING CARON: try adding one of: cherokee, tai-le\n * U+0312 COMBINING TURNED COMMA ABOVE: not included in any glyphset definition\n * U+0326 COMBINING COMMA BELOW: not included in any glyphset definition\n * U+0327 COMBINING CEDILLA: not included in any glyphset definition\n * U+0328 COMBINING OGONEK: not included in any glyphset definition\n * U+0335 COMBINING SHORT STROKE OVERLAY: not included in any glyphset definition\n * U+0337 COMBINING SHORT SOLIDUS OVERLAY: not included in any glyphset definition\n * U+0338 COMBINING LONG SOLIDUS OVERLAY: not included in any glyphset definition\n * U+2021 DOUBLE DAGGER: try adding adlam\n * U+2030 PER MILLE SIGN: try adding adlam\n * U+2070 SUPERSCRIPT ZERO: not included in any glyphset definition\n * U+2075 SUPERSCRIPT FIVE: not included in any glyphset definition\n * U+2076 SUPERSCRIPT SIX: not included in any glyphset definition\n * U+2077 SUPERSCRIPT SEVEN: not included in any glyphset definition\n * U+2078 SUPERSCRIPT EIGHT: not included in any glyphset definition\n * U+2079 SUPERSCRIPT NINE: not included in any glyphset definition\n * U+207D SUPERSCRIPT LEFT PARENTHESIS: not included in any glyphset definition\n * U+207E SUPERSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition\n * U+2080 SUBSCRIPT ZERO: not included in any glyphset definition\n * U+2081 SUBSCRIPT ONE: not included in any glyphset definition\n * U+2082 SUBSCRIPT TWO: not included in any glyphset definition\n * U+2083 SUBSCRIPT THREE: not included in any glyphset definition\n * U+2084 SUBSCRIPT FOUR: not included in any glyphset definition\n * U+2085 SUBSCRIPT FIVE: not included in any glyphset definition\n * U+2086 SUBSCRIPT SIX: not included in any glyphset definition\n * U+2087 SUBSCRIPT SEVEN: not included in any glyphset definition\n * U+2088 SUBSCRIPT EIGHT: not included in any glyphset definition\n * U+2089 SUBSCRIPT NINE: not included in any glyphset definition\n * U+208D SUBSCRIPT LEFT PARENTHESIS: not included in any glyphset definition\n * U+208E SUBSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition\n * U+212E ESTIMATED SYMBOL: not included in any glyphset definition\n * U+2153 VULGAR FRACTION ONE THIRD: not included in any glyphset definition\n * U+2154 VULGAR FRACTION TWO THIRDS: not included in any glyphset definition\n * U+215B VULGAR FRACTION ONE EIGHTH: not included in any glyphset definition\n * U+215C VULGAR FRACTION THREE EIGHTHS: not included in any glyphset definition\n * U+215D VULGAR FRACTION FIVE EIGHTHS: not included in any glyphset definition\n * U+215E VULGAR FRACTION SEVEN EIGHTHS: not included in any glyphset definition\n * U+FB01 LATIN SMALL LIGATURE FI: not included in any glyphset definition\n * U+FB02 LATIN SMALL LIGATURE FL: not included in any glyphset definition\n\nOr you can add the above codepoints to one of the subsets supported by the font: `cyrillic`, `cyrillic-ext`, `hebrew`, `latin`, `latin-ext`, `math`, `menu`, `symbols` [code: unreachable-subsetting]", "status": "WARN", "traceback": null}], "rationale": "\n This check ensures that all encoded glyphs in the font are covered by a\n subset declared in the METADATA.pb. Google Fonts splits the font into\n a set of subset fonts based on the contents of the `subsets` field and\n the subset definitions in the `glyphsets` repository.\n\n Any encoded glyphs which are not by any of these subset definitions\n will not be served in the subsetted fonts, and so will be unreachable to\n the end user.\n ", "result": "WARN", "severity": 2}, {"description": "Substitute copyright, registered and trademark symbols in name table entries.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No need to substitute copyright, registered and trademark symbols in name table entries of this font.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check the OS/2 usWeightClass is appropriate for the font's best SubFamily name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 usWeightClass is good", "status": "PASS", "traceback": null}], "rationale": "\n Google Fonts expects variable fonts, static ttfs and static otfs to have\n differing OS/2 usWeightClass values.\n\n - For Variable Fonts, Thin-Black must be 100-900\n\n - For static ttfs, Thin-Black can be 100-900 or 250-900\n\n - For static otfs, Thin-Black must be 250-900\n\n If static otfs are set lower than 250, text may appear blurry in\n legacy Windows applications.\n\n Glyphsapp users can change the usWeightClass value of an instance by adding\n a 'weightClass' customParameter.\n ", "result": "PASS"}, {"description": "Check font has a license.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Found license at '/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/OFL.txt'", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check license file has good copyright string.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "looks good", "status": "PASS", "traceback": null}], "rationale": "\n An OFL.txt file's first line should be the font copyright e.g:\n \"Copyright 2019 The Montserrat Project Authors\n (https://github.com/julietaula/montserrat)\"\n ", "result": "PASS", "severity": 10}, {"description": "Check OFL body text is correct.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OFL license body text is correct", "status": "PASS", "traceback": null}], "rationale": "\n Check OFL body text is correct.\n Often users will accidently delete parts of the body text.\n ", "result": "PASS", "severity": 10}, {"description": "Check copyright namerecords match license file.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Licensing entry on name table is correctly set.", "status": "PASS", "traceback": null}], "rationale": "\n A known licensing description must be provided in the NameID 14\n (LICENSE DESCRIPTION) entries of the name table.\n\n The source of truth for this check (to determine which license is in use) is\n a file placed side-by-side to your font project including the licensing terms.\n\n Depending on the chosen license, one of the following string snippets is\n expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the\n name table:\n\n - \"This Font Software is licensed under the SIL Open Font License, Version 1.1.\n This license is available with a FAQ at: https://scripts.sil.org/OFL\"\n\n - \"Licensed under the Apache License, Version 2.0\"\n\n - \"Licensed under the Ubuntu Font Licence 1.0.\"\n\n\n Currently accepted licenses are Apache or Open Font License. For a small set\n of legacy families the Ubuntu Font License may be acceptable as well.\n\n When in doubt, please choose OFL for new font projects.\n ", "result": "PASS"}, {"description": "License URL matches License text on name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has a valid license URL in NAME table.", "status": "PASS", "traceback": null}], "rationale": "\n A known license URL must be provided in the NameID 14 (LICENSE INFO URL)\n entry of the name table.\n\n The source of truth for this check is the licensing text found on the NameID 13\n entry (LICENSE DESCRIPTION).\n\n The string snippets used for detecting licensing terms are:\n\n - \"This Font Software is licensed under the SIL Open Font License, Version 1.1.\n This license is available with a FAQ at: https://scripts.sil.org/OFL\"\n\n - \"Licensed under the Apache License, Version 2.0\"\n\n - \"Licensed under the Ubuntu Font Licence 1.0.\"\n\n\n Currently accepted licenses are Apache or Open Font License. For a small set of\n legacy families the Ubuntu Font License may be acceptable as well.\n\n When in doubt, please choose OFL for new font projects.\n ", "result": "PASS"}, {"description": "Description strings in the name table must not exceed 200 characters.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All description name records have reasonably small lengths.", "status": "PASS", "traceback": null}], "rationale": "\n An old FontLab version had a bug which caused it to store copyright notices\n in nameID 10 entries.\n\n In order to detect those and distinguish them from actual legitimate usage of\n this name table entry, we expect that such strings do not exceed a reasonable\n length of 200 chars.\n\n Longer strings are likely instances of the FontLab bug.\n ", "result": "PASS"}, {"description": "Show hinting filesize impact.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Hinting filesize impact:\n\n | | /home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf |\n |:------------- | ---------------:|\n | Dehinted Size | 1.3Mb |\n | Hinted Size | 1.3Mb |\n | Increase | 24 bytes |\n | Change | 0.0 % |\n [code: size-impact]", "status": "INFO", "traceback": null}], "rationale": "\n This check is merely informative, displaying and useful comparison of filesizes\n of hinted versus unhinted font files.\n ", "result": "INFO"}, {"description": "Ensure files are not too large.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font file is 1.3Mb; ideally it should be less than 1.0Mb [code: large-font]", "status": "WARN", "traceback": null}], "rationale": "\n Serving extremely large font files on Google Fonts causes usability issues.\n This check ensures that file sizes are reasonable.\n ", "result": "WARN", "severity": 10}, {"description": "Version format is correct in 'name' table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Version format in NAME table entries is correct.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font has ttfautohint params?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font appears to our heuristic as not hinted using ttfautohint. [code: not-hinted]", "status": "SKIP", "traceback": null}], "result": "SKIP"}, {"description": "Font has old ttfautohint applied?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 2.201'] [code: version-not-detected]", "status": "INFO", "traceback": null}], "rationale": "\n Check if font has been hinted with an outdated version of ttfautohint.\n ", "result": "INFO"}, {"description": "EPAR table present in font?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "EPAR table not present in font. To learn more see https://github.com/fonttools/fontbakery/issues/818 [code: lacks-EPAR]", "status": "INFO", "traceback": null}], "rationale": "\n The EPAR table is/was a way of expressing common licensing permissions and\n restrictions in metadata; while almost nothing supported it, Dave Crossland\n wonders that adding it to everything in Google Fonts could help make it\n more popular.\n\n More info is available at:\n https://davelab6.github.io/epar/\n ", "result": "INFO", "severity": 1}, {"description": "Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "These are the ppm ranges declared on the gasp table:\n\nPPM <= 65535:\n\tflag = 0x0F\n\t- Use grid-fitting\n\t- Use grayscale rendering\n\t- Use gridfitting with ClearType symmetric smoothing\n\t- Use smoothing along multiple axes with ClearType\u00ae\n [code: ranges]", "status": "INFO", "traceback": null}, {"message": "The 'gasp' table is correctly set, with one gaspRange:value of 0xFFFF:0x0F.", "status": "PASS", "traceback": null}], "rationale": "\n Traditionally version 0 'gasp' tables were set so that font sizes below 8 ppem\n had no grid fitting but did have antialiasing. From 9-16 ppem, just grid\n fitting.\n And fonts above 17ppem had both antialiasing and grid fitting toggled on.\n The use of accelerated graphics cards and higher resolution screens make this\n approach obsolete. Microsoft's DirectWrite pushed this even further with much\n improved rendering built into the OS and apps.\n\n In this scenario it makes sense to simply toggle all 4 flags ON for all font\n sizes.\n ", "result": "INFO"}, {"description": "Make sure family name does not begin with a digit.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font family name first character is not a digit.", "status": "PASS", "traceback": null}], "rationale": "\n Font family names which start with a numeral are often not discoverable\n in Windows applications.\n ", "result": "PASS"}, {"description": "Are there non-ASCII characters in ASCII-only NAME table entries?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "None of the ASCII-only NAME table entries contain non-ASCII characteres.", "status": "PASS", "traceback": null}], "rationale": "\n The OpenType spec requires ASCII for the POSTSCRIPT_NAME (nameID 6).\n\n For COPYRIGHT_NOTICE (nameID 0) ASCII is required because that string should be\n the same in CFF fonts which also have this requirement in the OpenType spec.\n\n Note:\n A common place where we find non-ASCII strings is on name table entries\n with NameID > 18, which are expressly for localising the ASCII-only IDs\n into Hindi / Arabic / etc.\n ", "result": "PASS"}, {"description": "METADATA.pb: check if fonts field only has unique \"full_name\" values.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb \"fonts\" field only has unique \"full_name\" values.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: check if fonts field only contains unique style:weight pairs.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb \"fonts\" field only has unique style:weight pairs.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb license is \"APACHE2\", \"UFL\" or \"OFL\"?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font license is declared in METADATA.pb as \"OFL\"", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb should contain at least \"menu\" and \"latin\" subsets.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb contains \"menu\" and \"latin\" subsets.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb subsets should be alphabetically ordered.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb subsets are sorted in alphabetical order.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check METADATA.pb includes production subsets.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: listed_on_gfonts_api", "status": "SKIP", "traceback": null}], "rationale": "\n Check METADATA.pb file includes the same subsets as the family in production.\n ", "result": "SKIP"}, {"description": "METADATA.pb: Copyright notice is the same in all fonts?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Copyright is consistent across family", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check that METADATA.pb family values are all the same.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb: Family name is the same in all metadata \"fonts\" items.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: According to Google Fonts standards, families should have a Regular style.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Family has a Regular style.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Regular should be 400.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Regular has weight = 400.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checks METADATA.pb font.name field matches family name declared on the name table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Family name \"Rubik Doodle Shadow\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Postscript name \"RubikDoodleShadow-Regular\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.full_name value matches fullname declared on the name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font fullname \"Rubik Doodle Shadow Regular\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.name value should be same as the family name declared on the name table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK: Family name \"Rubik Doodle Shadow\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "rationale": "\n This check ensures consistency between the font name declared on the name table\n and the contents of the METADATA.pb file.\n ", "result": "PASS"}, {"description": "METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font fields \"full_name\" and \"post_script_name\" have equivalent values.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.filename and font.post_script_name fields have equivalent values?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font fields \"filename\" and \"post_script_name\" have equivalent values.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.name field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font.name field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.full_name field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font.full_name field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.filename field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb filename field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.post_script_name field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb postScriptName field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check name ID 25 to end with \"Italic\" for Italic VFs.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Not an Italic VF.", "status": "PASS", "traceback": null}], "rationale": "\n Due to a bug in (at least) Adobe Indesign, name ID 25\n needs to be different for Italic VFs than their Upright counterparts.\n Google Fonts chooses to append \"Italic\" here.\n ", "result": "PASS"}, {"description": "Copyright notices match canonical pattern in METADATA.pb", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb copyright string is good", "status": "PASS", "traceback": null}], "rationale": "\n The expected pattern for the copyright string adheres to the following rules:\n\n * It must say \"Copyright\" followed by a 4 digit year (optionally followed by\n a hyphen and another 4 digit year)\n\n * Then it must say \"The Project Authors\"\n\n * And within parentheses, a URL for a git repository must be provided\n\n * The check is case insensitive and does not validate whether the familyname\n is correct, even though we'd expect it is (and we may soon update the check\n to validate that aspect as well!)\n\n\n Here is an example of a valid copyright string:\n\n \"Copyright 2017 The Archivo Black Project Authors\n (https://github.com/Omnibus-Type/ArchivoBlack)\"\n ", "result": "PASS"}, {"description": "Copyright notices match canonical pattern in fonts", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Name Table entry: Copyright field 'Copyright 2020 The Rubik Filtered Project Authors (https://github.com/NaN-xyz/Rubik-Filtered)' matches canonical pattern.", "status": "PASS", "traceback": null}, {"message": "Name table copyright entries are good", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Copyright notice on METADATA.pb should not contain 'Reserved Font Name'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb copyright field does not contain \"Reserved Font Name\".", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Copyright notice shouldn't exceed 500 chars.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Copyright notice string is shorter than 500 chars.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Font filenames match font.filename entries?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Filenames in METADATA.pb look good.", "status": "PASS", "traceback": null}], "rationale": "\n Note:\n This check only looks for files in the current directory.\n\n Font files in subdirectories are checked by these other two checks:\n - com.google.fonts/check/metadata/undeclared_fonts\n - com.google.fonts/check/repo/vf_has_static_fonts\n\n We may want to merge them all into a single check.\n ", "result": "PASS"}, {"description": "METADATA.pb font.style \"italic\" matches font internals?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This check only applies to italic fonts.", "status": "SKIP", "traceback": null}], "result": "SKIP"}, {"description": "METADATA.pb font.style \"normal\" matches font internals?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font.style \"normal\" matches font internals.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.name and font.full_name fields match the values declared on the name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb familyname and fullName fields match corresponding name table entries.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Check font name is the same as family name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font name is the same as family name.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Check that font weight has a canonical value.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font weight has a canonical value.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check METADATA.pb font weights are correct.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 usWeightClass or wght axis value matches weight specified at METADATA.pb", "status": "PASS", "traceback": null}], "rationale": "\n Check METADATA.pb font weights are correct.\n\n For static fonts, the metadata weight should be the same as the static font's\n OS/2 usWeightClass.\n\n For variable fonts, the weight value should be 400 if the font's wght axis range\n includes 400, otherwise it should be the value closest to 400.\n ", "result": "PASS"}, {"description": "METADATA.pb weight matches postScriptName for static fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Weight value matches postScriptName.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Font styles are named canonically?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font styles are named canonically.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Check URL on copyright string is the same as in repository_url field.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Repository URL is https://github.com/NaN-xyz/Rubik-Filtered\n\nBut: OFL text has 'https:/' and HTML description has 'github.com/NaN-xyz/Glyph-Filters'\n [code: mismatch]", "status": "FAIL", "traceback": null}], "rationale": "\n Sometimes, perhaps due to copy-pasting, projects may declare different URLs\n between the font.coyright and the family.sources.repository_url fields.\n ", "result": "FAIL"}, {"description": "METADATA.pb: Check for primary_script", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Try to guess font's primary script and see if that's set in METADATA.pb.\n This is an educated guess based on the number of glyphs per script in the font\n and should be taken with caution.\n ", "result": "PASS"}, {"description": "Shapes languages in all GF glyphsets.", "experimental": "Since 2023/Nov/02", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "GF_Latin_Core glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| haw_Latn (Hawaiian) | Some base glyphs were missing: \u02bb |\n| ^ | Shaper produced a .notdef |\n| mh_Latn (Marshallese) | Some base glyphs were missing: \u1e36, \u1e37, \u1e42, \u1e43, \u1e46, \u1e47, \u1ecc, \u1ecd |\n| ^ | Some mark glyphs were missing: \u25cc\u0323 |\n| ^ | Shaper produced a .notdef |\n| scn_Latn (Sicilian) | Some base glyphs were missing: \u1e0c, \u1e0d |\n| ^ | Shaper produced a .notdef |\n| teo_Latn (Teso) | Some base glyphs were missing: \u0186, \u0190, \u0197, \u0244, \u0254, \u025b, \u0268, \u0289, \u1d43, \u1d49, \u1d4b, \u1d52, \u1d53, \u1d58, \u1da4, \u1db6, \u2071 |\n| ^ | Shaper produced a .notdef |\n\n [code: failed-language-shaping]", "status": "FAIL", "traceback": null}, {"message": "GF_Latin_Core glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| lg_Latn (Ganda) | No variant glyphs were found for Eng |\n| dyo_Latn (Jola-Fonyi) | No variant glyphs were found for Eng |\n| ny_Latn (Nyanja) | No variant glyphs were found for Eng |\n| wo_Latn (Wolof) | No variant glyphs were found for Eng |\n\n [code: warning-language-shaping]", "status": "WARN", "traceback": null}, {"message": "GF_Cyrillic_Plus glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| tg_Cyrl (Tajik) | Some base glyphs were missing: \u04b3 |\n| ^ | Shaper produced a .notdef |\n| uz_Cyrl (Uzbek (Cyrillic)) | Some base glyphs were missing: \u04b3 |\n| ^ | Shaper produced a .notdef |\n\n [code: failed-language-shaping]", "status": "FAIL", "traceback": null}, {"message": "GF_Cyrillic_Plus glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| ku_Cyrl (Kurdish) | No exemplar glyphs were defined for language Kurdish |\n\n [code: warning-language-shaping]", "status": "WARN", "traceback": null}], "rationale": "\n This check uses a heuristic to determine which GF glyphsets a font supports.\n Then it checks the font for correct shaping behaviour for all languages in\n those glyphsets.\n ", "result": "FAIL"}, {"description": "Stricter unitsPerEm criteria for Google Fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font em size is good (unitsPerEm = 1000).", "status": "PASS", "traceback": null}], "rationale": "\n Even though the OpenType spec allows unitsPerEm to be any value between 16\n and 16384, the Google Fonts project aims at a narrower set of reasonable values.\n\n Values above 4000 would likely result in unreasonable\n filesize increases.\n ", "result": "PASS"}, {"description": "Glyphs are similiar to Google Fonts version?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: api_gfonts_ttFont", "status": "SKIP", "traceback": null}], "result": "SKIP"}, {"description": "Checking direction of slnt axis angles", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n The 'slnt' axis values are defined as negative values for a clockwise (right)\n lean, and positive values for counter-clockwise lean. This is counter-intuitive\n for many designers who are used to think of a positive slant as a lean to\n the right.\n\n This check ensures that the slant axis direction is consistent with the specs.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_slnt\n ", "result": "SKIP"}, {"description": "Check font names are correct", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font names are good:\n\n| nameID | current | expected |\n| :--- | :--- | :--- |\n| Family Name | Rubik Doodle Shadow | Rubik Doodle Shadow |\n| Subfamily Name | Regular | Regular |\n| Full Name | Rubik Doodle Shadow Regular | Rubik Doodle Shadow Regular |\n| Postscript Name | RubikDoodleShadow-Regular | RubikDoodleShadow-Regular |", "status": "PASS", "traceback": null}], "rationale": "\n Google Fonts has several rules which need to be adhered to when\n setting a font's name table. Please read:\n https://googlefonts.github.io/gf-guide/statics.html#supported-styles\n https://googlefonts.github.io/gf-guide/statics.html#style-linking\n https://googlefonts.github.io/gf-guide/statics.html#unsupported-styles\n https://googlefonts.github.io/gf-guide/statics.html#single-weight-families\n ", "result": "PASS"}, {"description": "Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Copyright field for this font on METADATA.pb matches copyright notice entries on the name table.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font has all mandatory 'name' table entries?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font contains values for all mandatory name table entries.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Length of copyright notice must not exceed 500 characters.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All copyright notice name entries on the 'name' table are shorter than 500 characters.", "status": "PASS", "traceback": null}], "rationale": "\n This is an arbitrary max length for the copyright notice field of the name\n table. We simply don't want such notices to be too long. Typically such notices\n are actually much shorter than this with a length of roughly 70 or 80\n characters.\n ", "result": "PASS"}, {"description": "Check for font-v versioning.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Version string is: \"Version 2.201\"\nThe version string must ideally include a git commit hash and either a \"dev\" or a \"release\" suffix such as in the example below:\n\"Version 1.3; git-0d08353-release\" [code: bad-format]", "status": "INFO", "traceback": null}], "rationale": "\n The git sha1 tagging and dev/release features of Source Foundry `font-v` tool\n are awesome and we would love to consider upstreaming the approach into\n fontmake someday. For now we only emit an INFO if a given font does not yet\n follow the experimental versioning style, but at some point we may start\n enforcing it.\n ", "result": "INFO"}, {"description": "Check glyphs do not have components which are themselves components.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyphs do not contain nested components.", "status": "PASS", "traceback": null}], "rationale": "\n There have been bugs rendering variable fonts with nested components.\n Additionally, some static fonts with nested components have been reported\n to have rendering and printing issues.\n\n For more info, see:\n * https://github.com/fonttools/fontbakery/issues/2961\n * https://github.com/arrowtype/recursive/issues/412\n ", "result": "PASS"}, {"description": "Check a static ttf can be generated from a variable font.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Google Fonts may serve static fonts which have been generated from variable\n fonts. This test will attempt to generate a static ttf using fontTool's\n varLib mutator.\n\n The target font will be the mean of each axis e.g:\n\n ## VF font axes\n\n - min weight, max weight = 400, 800\n\n - min width, max width = 50, 100\n\n ## Target Instance\n\n - weight = 600\n\n - width = 75\n ", "result": "SKIP"}, {"description": "Check that variable fonts have an HVAR table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Not having a HVAR table can lead to costly text-layout operations on some\n platforms, which we want to avoid.\n\n So, all variable fonts on the Google Fonts collection should have an HVAR\n with valid values.\n\n More info on the HVAR table can be found at:\n https://docs.microsoft.com/en-us/typography/opentype/spec/otvaroverview#variation-data-tables-and-miscellaneous-requirements\n ", "result": "SKIP"}, {"description": "Font enables smart dropout control in \"prep\" table instructions?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "'prep' table contains instructions enabling smart dropout control.", "status": "PASS", "traceback": null}], "rationale": "\n This setup is meant to ensure consistent rendering quality for fonts across\n all devices (with different rendering/hinting capabilities).\n\n Below is the snippet of instructions we expect to see in the fonts:\n B8 01 FF PUSHW 0x01FF\n 85 SCANCTRL (unconditinally turn on\n dropout control mode)\n B0 04 PUSHB 0x04\n 8D SCANTYPE (enable smart dropout control)\n\n \"Smart dropout control\" means activating rules 1, 2 and 5:\n Rule 1: If a pixel's center falls within the glyph outline,\n that pixel is turned on.\n Rule 2: If a contour falls exactly on a pixel's center,\n that pixel is turned on.\n Rule 5: If a scan line between two adjacent pixel centers\n (either vertical or horizontal) is intersected\n by both an on-Transition contour and an off-Transition\n contour and neither of the pixels was already turned on\n by rules 1 and 2, turn on the pixel which is closer to\n the midpoint between the on-Transition contour and\n off-Transition contour. This is \"Smart\" dropout control.\n\n For more detailed info (such as other rules not enabled in this snippet),\n please refer to the TrueType Instruction Set documentation.\n ", "result": "PASS"}, {"description": "There must not be VTT Talk sources in the font.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There are no tables with VTT Talk sources embedded in the font.", "status": "PASS", "traceback": null}], "rationale": "\n The goal here is to reduce filesizes and improve pageloading when dealing\n with webfonts.\n\n The VTT Talk sources are not necessary at runtime and endup being just dead\n weight when left embedded in the font binaries. The sources should be kept on\n the project files but stripped out when building release binaries.\n ", "result": "PASS"}, {"description": "Are there unwanted Apple tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There are no unwanted AAT tables.", "status": "PASS", "traceback": null}], "rationale": "\n Apple's TrueType reference manual [1] describes SFNT tables not in the\n Microsoft OpenType specification [2] and these can sometimes sneak into final\n release files, but Google Fonts should only have OpenType tables.\n\n [1] https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6.html\n [2] https://docs.microsoft.com/en-us/typography/opentype/spec/\n ", "result": "PASS"}, {"description": "Check a font's STAT table contains compulsory Axis Values.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check a font's STAT table contains compulsory Axis Values which exist\n in the Google Fonts Axis Registry.\n\n We cannot determine what Axis Values the user will set for axes such as\n opsz, GRAD since these axes are unique for each font so we'll skip them.\n ", "result": "SKIP"}, {"description": "Check variable font instances", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check a font's fvar instance coordinates comply with our guidelines:\n https://googlefonts.github.io/gf-guide/variable.html#fvar-instances\n ", "result": "SKIP"}, {"description": "All name entries referenced by fvar instances exist on the name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n The purpose of this check is to make sure that all name entries referenced\n by variable font instances do exist in the name table.\n ", "result": "SKIP"}, {"description": "PPEM must be an integer on hinted fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_hinted", "status": "SKIP", "traceback": null}], "rationale": "\n Hinted fonts must have head table flag bit 3 set.\n\n Per https://docs.microsoft.com/en-us/typography/opentype/spec/head,\n bit 3 of Head::flags decides whether PPEM should be rounded. This bit should\n always be set for hinted fonts.\n\n Note:\n Bit 3 = Force ppem to integer values for all internal scaler math;\n May use fractional ppem sizes if this bit is clear;\n ", "result": "SKIP"}, {"description": "Are there caret positions declared for every ligature?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n All ligatures in a font must have corresponding caret (text cursor) positions\n defined in the GDEF table, otherwhise, users may experience issues with\n caret rendering.\n\n If using GlyphsApp or UFOs, ligature carets can be defined as anchors with\n names starting with 'caret_'. These can be compiled with fontmake as of\n version v2.4.0.\n ", "result": "PASS"}, {"description": "Is there kerning info for non-ligated sequences?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "GPOS table lacks kerning info for the following non-ligated sequences:\n\n\t- f + f\n\n\t- f + i\n\n\t- i + f\n\n\t- f + l\n\n\t- l + f\n\n\t- i + l [code: lacks-kern-info]", "status": "WARN", "traceback": null}], "rationale": "\n Fonts with ligatures should have kerning on the corresponding non-ligated\n sequences for text where ligatures aren't used\n (eg https://github.com/impallari/Raleway/issues/14).\n ", "result": "WARN"}, {"description": "Combined length of family and style must not exceed 27 characters.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All name entries are good.", "status": "PASS", "traceback": null}], "rationale": "\n According to a GlyphsApp tutorial [1], in order to make sure all versions of\n Windows recognize it as a valid font file, we must make sure that the\n concatenated length of the familyname (NameID.FONT_FAMILY_NAME) and\n style (NameID.FONT_SUBFAMILY_NAME) strings in the name table do not\n exceed 20 characters.\n\n After discussing the problem in more detail at FontBakery issue #2179 [2] we\n decided that allowing up to 27 chars would still be on the safe side, though.\n\n [1] https://glyphsapp.com/tutorials/multiple-masters-part-3-setting-up-instances\n [2] https://github.com/fonttools/fontbakery/issues/2179\n ", "result": "PASS"}, {"description": "Name table entries should not contain line-breaks.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Name table entries are all single-line (no line-breaks found).", "status": "PASS", "traceback": null}], "rationale": "\n There are some entries on the name table that may include more than one line\n of text. The Google Fonts team, though, prefers to keep the name table entries\n short and simple without line breaks.\n\n For instance, some designers like to include the full text of a font license in\n the \"copyright notice\" entry, but for the GFonts collection this entry should\n only mention year, author and other basic info in a manner enforced by\n com.google.fonts/check/font_copyright\n ", "result": "PASS"}, {"description": "Name table strings must not contain the string 'Reserved Font Name'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "None of the name table strings contain \"Reserved Font Name\".", "status": "PASS", "traceback": null}], "rationale": "\n Some designers adopt the \"Reserved Font Name\" clause of the OFL license. This\n means that the original author reserves the rights to the family name and other\n people can only distribute modified versions using a different family name.\n\n Google Fonts published updates to the fonts in the collection in order to fix\n issues and/or implement further improvements to the fonts. It is important to\n keep the family name so that users of the webfonts can benefit from the updates.\n Since it would forbid such usage scenario, all families in the GFonts collection\n are required to not adopt the RFN clause.\n\n This check ensures \"Reserved Font Name\" is not mentioned in the name table.\n ", "result": "PASS"}, {"description": "Check family name for GF Guide compliance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font name looks good.", "status": "PASS", "traceback": null}], "rationale": "\n Checks the family name for compliance with the Google Fonts Guide.\n https://googlefonts.github.io/gf-guide/onboarding.html#new-fonts\n\n If you want to have your family name added to the CamelCase\n exceptions list, please submit a pull request to the\n camelcased_familyname_exceptions.txt file.\n\n Similarly, abbreviations can be submitted to the\n abbreviations_familyname_exceptions.txt file.\n\n These are located in the Lib/fontbakery/data/googlefonts/ directory\n of the FontBakery source code currently hosted at\n https://github.com/fonttools/fontbakery/\n ", "result": "PASS"}, {"description": "Directory name in GFonts repo structure must match NameID 1 of the regular.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "A static fonts directory, if present, must contain manually hinted fonts", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Variable font family directories kept in the google/fonts git repo may include\n a static/ subdir containing static fonts, if manual hinting is used on\n these fonts. Otherwise, the directory should be removed.\n ", "result": "PASS"}, {"description": "A font repository should not include FontBakery report files", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n A FontBakery report is ephemeral and so should be used for posting issues on a\n bug-tracker instead of being hosted in the font project repository.\n ", "result": "PASS"}, {"description": "Check upstream.yaml file contains all required fields", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The upstream.yaml file contains all necessary fields", "status": "PASS", "traceback": null}], "rationale": "\n If a family has been pushed using the gftools packager, we must check that all\n the required fields in the upstream.yaml file have been populated.\n ", "result": "PASS", "severity": 10}, {"description": "A font repository should not include ZIP files", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Sometimes people check in ZIPs into their font project repositories. While we\n accept the practice of checking in binaries, we believe that a ZIP is a step\n too far ;)\n\n Note: a source purist position is that only source files and build scripts\n should be checked in.\n ", "result": "PASS"}, {"description": "Check font follows the Google Fonts vertical metric schema", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The sum of hhea.ascender + abs(hhea.descender) + hhea.lineGap is 1185 when it should be at least 1200 [code: bad-hhea-range]", "status": "FAIL", "traceback": null}], "rationale": "\n This check generally enforces Google Fonts\u2019 vertical metrics specifications.\n In particular:\n * lineGap must be 0\n * Sum of hhea ascender + abs(descender) + linegap must be\n between 120% and 200% of UPM\n * Warning if sum is over 150% of UPM\n\n The threshold levels 150% (WARN) and 200% (FAIL) are somewhat arbitrarily chosen\n and may hint at a glaring mistake in the metrics calculations or UPM settings.\n\n Our documentation includes further information:\n https://github.com/googlefonts/gf-docs/tree/main/VerticalMetrics\n ", "result": "FAIL"}, {"description": "Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: regular_remote_style", "status": "SKIP", "traceback": null}], "rationale": "\n If the family already exists on Google Fonts, we need to ensure that the\n checked family's vertical metrics are similar. This check will test the\n following schema which was outlined in Font Bakery issue #1162 [1]:\n\n - The family should visually have the same vertical metrics as the Regular\n style hosted on Google Fonts.\n\n - If the family on Google Fonts has differing hhea and typo metrics, the family\n being checked should use the typo metrics for both the hhea and typo entries.\n\n - If the family on Google Fonts has use typo metrics not enabled and the family\n being checked has it enabled, the hhea and typo metrics should use the family\n on Google Fonts winAscent and winDescent values.\n\n - If the upms differ, the values must be scaled so the visual appearance is\n the same.\n\n [1] https://github.com/fonttools/fontbakery/issues/1162\n ", "result": "SKIP"}, {"description": "Check font follows the Google Fonts CJK vertical metric schema", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cjk_font", "status": "SKIP", "traceback": null}], "rationale": "\n CJK fonts have different vertical metrics when compared to Latin fonts.\n We follow the schema developed by dr Ken Lunde for Source Han Sans and\n the Noto CJK fonts.\n\n Our documentation includes further information:\n https://github.com/googlefonts/gf-docs/tree/main/Spec#cjk-vertical-metrics\n ", "result": "SKIP"}, {"description": "Check if the vertical metrics of a CJK family are similar to the same family hosted on Google Fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cjk_font, regular_remote_style", "status": "SKIP", "traceback": null}], "rationale": "\n Check CJK family has the same vertical metrics as the same family\n hosted on Google Fonts.\n ", "result": "SKIP"}, {"description": "Does the font contain less than 150 CJK characters?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_claiming_to_be_cjk_font", "status": "SKIP", "traceback": null}], "rationale": "\n Kana has 150 characters and it's the smallest CJK writing system.\n\n If a font contains less CJK glyphs than this writing system, we inform the\n user that some glyphs may be encoded incorrectly.\n ", "result": "SKIP"}, {"description": "Check variable font instances don't have duplicate names", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n This check's purpose is to detect duplicate named instances names in a\n given variable font.\n Repeating instance names may be the result of instances for several VF axes\n defined in `fvar`, but since currently only weight+italic tokens are allowed\n in instance names as per GF specs, they ended up repeating.\n Instead, only a base set of fonts for the most default representation of the\n family can be defined through instances in the `fvar` table, all other\n instances will have to be left to access through the `STAT` table.\n ", "result": "SKIP"}, {"description": "Ensure VFs do not contain the ital axis.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n The 'ital' axis is not supported yet in Google Chrome.\n\n For the time being, we need to ensure that VFs do not contain this axis.\n Once browser support is better, we can deprecate this check.\n\n For more info regarding browser support, see:\n https://arrowtype.github.io/vf-slnt-test/\n ", "result": "SKIP"}, {"description": "Ensure VFs with duplexed axes do not vary horizontal advance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Certain axes, such as grade (GRAD) or roundness (ROND), should not\n change any advanceWidth or kerning data across the font's design space.\n This is because altering the advance width of glyphs can cause text reflow.\n ", "result": "SKIP"}, {"description": "Validate METADATA.pb axes values are within gf_axisregistry bounds.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Each axis range in a METADATA.pb file must be registered, and within the bounds\n of the axis definition in the Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n ", "result": "SKIP"}, {"description": "Validate METADATA.pb axes tags are defined in gf_axisregistry.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Ensure all axes in a METADATA.pb file are registered in the\n Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n\n Why does Google Fonts have its own Axis Registry?\n\n We support a superset of the OpenType axis registry axis set, and use\n additional metadata for each axis. Axes present in a font file but not in this\n registry will not function via our API. No variable font is expected to\n support all of the axes here.\n\n Any font foundry or distributor library that offers variable fonts has a\n implicit, latent, de-facto axis registry, which can be extracted by scanning\n the library for axes' tags, labels, and min/def/max values. While in 2016\n Microsoft originally offered to include more axes in the OpenType 1.8\n specification (github.com/microsoft/OpenTypeDesignVariationAxisTags), as of\n August 2020, this effort has stalled. We hope more foundries and distributors\n will publish documents like this that make their axes explicit, to encourage\n of adoption of variable fonts throughout the industry, and provide source\n material for a future update to the OpenType specification's axis registry.\n ", "result": "SKIP"}, {"description": "Validate defaults on fvar table match registered fallback names in GFAxisRegistry.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check that axis defaults have a corresponding fallback name registered at the\n Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n\n This is necessary for the following reasons:\n\n To get ZIP files downloads on Google Fonts to be accurate \u2014 otherwise the\n chosen default font is not generated. The Newsreader family, for instance, has\n a default value on the 'opsz' axis of 16pt. If 16pt was not a registered\n fallback position, then the ZIP file would instead include another position\n as default (such as 14pt).\n\n For the Variable fonts to display the correct location on the specimen page.\n\n For VF with no weight axis to be displayed at all. For instance, Ballet, which\n has no weight axis, was not appearing in sandbox because default position on\n 'opsz' axis was 16pt, and it was not yet a registered fallback positon.\n ", "result": "SKIP"}, {"description": "Validate STAT particle names and values match the fallback names in GFAxisRegistry.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check that particle names and values on STAT table match the fallback names\n in each axis entry at the Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n ", "result": "SKIP"}, {"description": "Validate VF axes match the ones declared on METADATA.pb.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n All font variation axes present in the font files must be properly declared\n on METADATA.pb so that they can be served by the GFonts API.\n ", "result": "SKIP"}, {"description": "Ensure METADATA.pb does not use escaped strings.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n In some cases we've seen designer names and other fields with escaped strings\n in METADATA files (such as \"Juli\\303\\241n\").\n\n Nowadays the strings can be full unicode strings (such as \"Juli\u00e1n\") and do\n not need escaping.\n\n Escaping quotes or double-quotes is fine, though.\n ", "result": "PASS"}, {"description": "METADATA.pb: Designers are listed correctly on the Google Fonts catalog?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Designer Luke Prowse still does not have an avatar image. Please provide one. [code: missing-avatar]", "status": "FAIL", "traceback": null}], "rationale": "\n Google Fonts has a catalog of designers.\n\n This check ensures that the online entries of the catalog can be found based\n on the designer names listed on the METADATA.pb file.\n\n It also validates the URLs and file formats are all correctly set.\n ", "result": "FAIL"}, {"description": "Ensure variable fonts include an avar table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Most variable fonts should include an avar table to correctly define\n axes progression rates.\n\n For example, a weight axis from 0% to 100% doesn't map directly to 100 to 1000,\n because a 10% progression from 0% may be too much to define the 200,\n while 90% may be too little to define the 900.\n\n If the progression rates of axes is linear, this check can be ignored.\n Fontmake will also skip adding an avar table if the progression rates\n are linear. However, we still recommend designers visually proof each\n instance is at the expected weight, width etc.\n ", "result": "SKIP"}, {"description": "On a family update, the DESCRIPTION.en_us.html file should ideally also be updated.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The DESCRIPTION.en_us.html file in this family has not changed in comparison to the latest font release on the google/fonts github repo.\nPlease consider mentioning note-worthy improvements made to the family recently. [code: description-not-updated]", "status": "WARN", "traceback": null}], "rationale": "\n We want to ensure that any significant changes to the font family are\n properly mentioned in the DESCRIPTION file.\n\n In general, it means that the contents of the DESCRIPTION.en_us.html file\n will typically change if when font files are updated. Please treat this check\n as a reminder to do so whenever appropriate!\n ", "result": "WARN"}, {"description": "Check small caps glyphs are available.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Ensure small caps glyphs are available if\n a font declares smcp or c2sc OT features.\n ", "result": "PASS"}, {"description": "Ensure Stylistic Sets have description.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Stylistic sets should provide description text. Programs such as InDesign,\n TextEdit and Inkscape use that info to display to the users so that they know\n what a given stylistic set offers.\n ", "result": "PASS"}, {"description": "OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n All fonts on the Google Fonts collection should have OS/2.fsSelection bit 7\n (USE_TYPO_METRICS) set. This requirement is part of the vertical metrics scheme\n established as a Google Fonts policy aiming at a common ground supported by\n all major font rendering environments.\n\n For more details, read:\n https://github.com/googlefonts/gf-docs/blob/main/VerticalMetrics/README.md\n\n Below is the portion of that document that is most relevant to this check:\n\n Use_Typo_Metrics must be enabled. This will force MS Applications to use the\n OS/2 Typo values instead of the Win values. By doing this, we can freely set\n the Win values to avoid clipping and control the line height with the typo\n values. It has the added benefit of future line height compatibility. When\n a new script is added, we simply change the Win values to the new yMin\n and yMax, without needing to worry if the line height have changed.\n ", "result": "PASS", "severity": 10}, {"description": "Ensure fonts have ScriptLangTags declared on the 'meta' table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This font file does not have a 'meta' table. [code: lacks-meta-table]", "status": "WARN", "traceback": null}], "rationale": "\n The OpenType 'meta' table originated at Apple. Microsoft added it to OT with\n just two DataMap records:\n\n - dlng: comma-separated ScriptLangTags that indicate which scripts,\n or languages and scripts, with possible variants, the font is designed for.\n\n - slng: comma-separated ScriptLangTags that indicate which scripts,\n or languages and scripts, with possible variants, the font supports.\n\n\n The slng structure is intended to describe which languages and scripts the\n font overall supports. For example, a Traditional Chinese font that also\n contains Latin characters, can indicate Hant,Latn, showing that it supports\n Hant, the Traditional Chinese variant of the Hani script, and it also\n supports the Latn script.\n\n The dlng structure is far more interesting. A font may contain various glyphs,\n but only a particular subset of the glyphs may be truly \"leading\" in the design,\n while other glyphs may have been included for technical reasons. Such a\n Traditional Chinese font could only list Hant there, showing that it\u2019s designed\n for Traditional Chinese, but the font would omit Latn, because the developers\n don\u2019t think the font is really recommended for purely Latin-script use.\n\n The tags used in the structures can comprise just script, or also language\n and script. For example, if a font has Bulgarian Cyrillic alternates in the\n locl feature for the cyrl BGR OT languagesystem, it could also indicate in\n dlng explicitly that it supports bul-Cyrl. (Note that the scripts and languages\n in meta use the ISO language and script codes, not the OpenType ones).\n\n This check ensures that the font has the meta table containing the\n slng and dlng structures.\n\n All families in the Google Fonts collection should contain the 'meta' table.\n Windows 10 already uses it when deciding on which fonts to fall back to.\n The Google Fonts API and also other environments could use the data for\n smarter filtering. Most importantly, those entries should be added\n to the Noto fonts.\n\n In the font making process, some environments store this data in external\n files already. But the meta table provides a convenient way to store this\n inside the font file, so some tools may add the data, and unrelated tools\n may read this data. This makes the solution much more portable and universal.\n ", "result": "WARN", "severity": 3}, {"description": "Ensure fonts do not contain any pre-production tables.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Tables such as `Debg` are useful in the pre-production stages of font\n development, but add unnecessary bloat to a production font and should\n be removed before release.\n ", "result": "PASS", "severity": 6}, {"description": "Check font family directory name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Directory name is \"rubikdoodleshadow\", as expected.", "status": "PASS", "traceback": null}], "rationale": "\n We want the directory name of a font family to be predictable and directly\n derived from the family name, all lowercased and removing spaces.\n ", "result": "PASS"}, {"description": "Check font can render its own name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font can successfully render its own name (Rubik Doodle Shadow)", "status": "PASS", "traceback": null}], "rationale": "\n A base expectation is that a font family's regular/default (400 roman) style\n can render its 'menu name' (nameID 1) in itself.\n ", "result": "PASS"}, {"description": "Check samples can be rendered.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK.", "status": "PASS", "traceback": null}], "rationale": "\n In order to prevent tofu from being seen on fonts.google.com, this check\n verifies that all samples specified by METADATA.pb can be properly\n rendered by the font.\n ", "result": "PASS"}, {"description": "Check if category on METADATA.pb matches what can be inferred from the family name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK.", "status": "PASS", "traceback": null}], "rationale": "\n Sometimes the font familyname contains words that hint at which is the most\n likely correct category to be declared on METADATA.pb\n ", "result": "PASS"}, {"description": "Check font has the expected color font tables.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks Good!", "status": "PASS", "traceback": null}], "rationale": "\n COLR v0 fonts are widely supported in most browsers so they do not require\n an SVG color table. However, some environments (e.g. Safari, Adobe apps)\n do not currently support COLR v1 so we need to add an SVG table to these fonts,\n except in the case of variable fonts, since SVG does not support\n OpenType Variations.\n\n To automatically generate compatible SVG/COLR tables,\n run the maximum_color tool in nanoemoji:\n https://github.com/googlefonts/nanoemoji\n ", "result": "PASS"}, {"description": "Color layers should have a minimum brightness", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Layers of a COLRv0 font should not be too dark or too bright. When layer colors\n are set explicitly, they can't be changed and they may turn out illegible\n against dark or bright backgrounds.\n\n While traditional color-less fonts can be colored in design apps or CSS, a\n black color definition in a COLRv0 font actually means that that layer will be\n rendered in black regardless of the background color. This leads to text\n becoming invisible against a dark background, for instance when using a dark\n theme in a web browser or operating system.\n\n This check ensures that layer colors are at least 10% bright and at most 90%\n bright, when not already set to the current color (0xFFFF).\n ", "result": "PASS"}, {"description": "Put an empty glyph on GID 1 right after the .notdef glyph for COLRv0 fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n A rendering bug in Windows 10 paints whichever glyph is on GID 1 on top of\n some glyphs, colored or not. This only occurs for COLR version 0 fonts.\n\n Having a glyph with no contours on GID 1 is a practical workaround for that.\n\n See https://github.com/googlefonts/gftools/issues/609\n ", "result": "PASS"}, {"description": "Noto fonts must have an ARTICLE.en_us.html file", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_noto", "status": "SKIP", "traceback": null}], "rationale": "\n Noto fonts are displayed in a different way on the fonts.google.com\n web site, and so must also contain an article about them.\n ", "result": "SKIP"}, {"description": "At least one designer is declared in METADATA.pb", "experimental": "Since 2023/Oct/12", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font designer field is not empty.", "status": "PASS", "traceback": null}], "rationale": "\n Any font published on Google Fonts must credit one or several authors,\n foundry and/or individuals.\n\n Ideally, all authors listed in the upstream repository's AUTHORS.txt should\n be mentioned in the designer field.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"FAIL": 4, "INFO": 7, "PASS": 96, "SKIP": 27, "WARN": 6}}, {"checks": [{"description": "Checking all files are in the same directory.", "key": ["", "", []], "logs": [{"message": "All files are in the same directory.", "status": "PASS", "traceback": null}], "rationale": "\n If the set of font files passed in the command line is not all in the\n same directory, then we warn the user since the tool will interpret the\n set of files as belonging to a single family (and it is unlikely that\n the user would store the files from a single family spreaded\n in several separate directories).\n ", "result": "PASS"}, {"description": "Each font in a family must have the same set of vertical metrics values.", "key": ["", "", []], "logs": [{"message": "Vertical metrics are the same across the family.", "status": "PASS", "traceback": null}], "rationale": "\n We want all fonts within a family to have the same vertical metrics so\n their line spacing is consistent across the family.\n ", "result": "PASS"}, {"description": "Name table records must not have trailing spaces.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No trailing spaces on name table entries.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking OS/2 usWinAscent & usWinDescent.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 usWinAscent & usWinDescent values look good!", "status": "PASS", "traceback": null}], "rationale": "\n A font's winAscent and winDescent values should be greater than or equal to\n the head table's yMax, abs(yMin) values. If they are less than these values,\n clipping can occur on Windows platforms\n (https://github.com/RedHatBrand/Overpass/issues/33).\n\n If the font includes tall/deep writing systems such as Arabic or Devanagari,\n the winAscent and winDescent can be greater than the yMax and absolute yMin\n values to accommodate vowel marks.\n\n When the 'win' Metrics are significantly greater than the UPM, the linespacing\n can appear too loose. To counteract this, enabling the OS/2 fsSelection\n bit 7 (Use_Typo_Metrics), will force Windows to use the OS/2 'typo' values\n instead. This means the font developer can control the linespacing with\n the 'typo' values, whilst avoiding clipping by setting the 'win' values to\n values greater than the yMax and absolute yMin.\n ", "result": "PASS"}, {"description": "Checking OS/2 Metrics match hhea Metrics.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2.sTypoAscender/Descender values match hhea.ascent/descent.", "status": "PASS", "traceback": null}], "rationale": "\n OS/2 and hhea vertical metric values should match. This will produce the\n same linespacing on Mac, GNU+Linux and Windows.\n\n - Mac OS X uses the hhea values.\n - Windows uses OS/2 or Win, depending on the OS or fsSelection bit value.\n\n When OS/2 and hhea vertical metrics match, the same linespacing results on\n macOS, GNU+Linux and Windows. Note that fixing this issue in a previously\n released font may cause reflow in user documents and unhappy users.\n ", "result": "PASS"}, {"description": "Checking with ots-sanitize.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "ots-sanitize passed this file", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Do we have the latest version of FontBakery installed?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "FontBakery is up-to-date.", "status": "PASS", "traceback": null}], "rationale": "\n Running old versions of FontBakery can lead to a poor report which may\n include false WARNs and FAILs due do bugs, as well as outdated\n quality assurance criteria.\n\n Older versions will also not report problems that are detected by new checks\n added to the tool in more recent updates.\n ", "result": "PASS"}, {"description": "Font contains '.notdef' as its first glyph?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n The OpenType specification v1.8.2 recommends that the first glyph is the\n '.notdef' glyph without a codepoint assigned and with a drawing:\n\n The .notdef glyph is very important for providing the user feedback\n that a glyph is not found in the font. This glyph should not be left\n without an outline as the user will only see what looks like a space\n if a glyph is missing and not be aware of the active font\u2019s limitation.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/recom#glyph-0-the-notdef-glyph\n\n Pre-v1.8, it was recommended that fonts should also contain 'space', 'CR'\n and '.null' glyphs. This might have been relevant for MacOS 9 applications.\n ", "result": "PASS"}, {"description": "Font contains glyphs for whitespace characters?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font contains glyphs for whitespace characters.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font has **proper** whitespace glyph names?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has **AGL recommended** names for whitespace glyphs.", "status": "PASS", "traceback": null}], "rationale": "\n This check enforces adherence to recommended whitespace\n (codepoints 0020 and 00A0) glyph names according to the Adobe Glyph List.\n ", "result": "PASS"}, {"description": "Whitespace glyphs have ink?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There is no whitespace glyph with ink.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check that legacy accents aren't used in composite glyphs. (derived from com.google.fonts/check/legacy_accents)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Legacy accents should not be used in accented glyphs. The use of legacy\n accents in accented glyphs breaks the mark to mark combining feature that\n allows a font to stack diacritics over one glyph. Use combining marks\n instead as a component in composite glyphs.\n\n Legacy accents should not have anchors and should have non-zero width.\n They are often used independently of a letter, either as a placeholder\n for an expected combined mark+letter combination in MacOS, or separately.\n For instance, U+00B4 (ACUTE ACCENT) is often mistakenly used as an apostrophe,\n U+0060 (GRAVE ACCENT) is used in Markdown to notify code blocks,\n and ^ is used as an exponential operator in maths.\n ", "result": "PASS"}, {"description": "Check that Arabic spacing symbols U+FBB2\u2013FBC1 aren't classified as marks.", "experimental": "Since 2023/Oct/20", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Unicode has a few spacing symbols representing Arabic dots and other marks,\n but they are purposefully not classified as marks.\n\n Many fonts mistakenly classify them as marks, making them unsuitable\n for their original purpose as stand-alone symbols to used in pedagogical\n contexts discussing Arabic consonantal marks.\n ", "result": "PASS", "severity": 4}, {"description": "Check that glyph for U+0675 ARABIC LETTER HIGH HAMZA is not a mark.", "experimental": "Since 2023/Oct/20", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This check will only run on fonts that have both glyphs U+0621 and U+0675 [code: glyphs-missing]", "status": "SKIP", "traceback": null}], "rationale": "\n Many fonts incorrectly treat ARABIC LETTER HIGH HAMZA (U+0675) as a variant of\n ARABIC HAMZA ABOVE (U+0654) and make it a combining mark of the same size.\n\n But U+0675 is a base letter and should be a variant of ARABIC LETTER HAMZA\n (U+0621) but raised slightly above baseline.\n\n Not doing so effectively makes the font useless for Jawi and\n possibly Kazakh as well.\n ", "result": "SKIP", "severity": 4}, {"description": "Font contains all required tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This font contains the following optional tables:\n\n\t- loca\n\n\t- prep\n\n\t- GPOS\n\n\t- GSUB\n\n\t- gasp [code: optional-tables]", "status": "INFO", "traceback": null}, {"message": "Font contains all required tables.", "status": "PASS", "traceback": null}], "rationale": "\n According to the OpenType spec\n https://docs.microsoft.com/en-us/typography/opentype/spec/otff#required-tables\n\n Whether TrueType or CFF outlines are used in an OpenType font, the following\n tables are required for the font to function correctly:\n\n - cmap (Character to glyph mapping)\u23ce\n - head (Font header)\u23ce\n - hhea (Horizontal header)\u23ce\n - hmtx (Horizontal metrics)\u23ce\n - maxp (Maximum profile)\u23ce\n - name (Naming table)\u23ce\n - OS/2 (OS/2 and Windows specific metrics)\u23ce\n - post (PostScript information)\n\n The spec also documents that variable fonts require the following table:\n\n - STAT (Style attributes)\n\n Depending on the typeface and coverage of a font, certain tables are\n recommended for optimum quality.\n\n For example:\u23ce\n - the performance of a non-linear font is improved if the VDMX, LTSH,\n and hdmx tables are present.\u23ce\n - Non-monospaced Latin fonts should have a kern table.\u23ce\n - A gasp table is necessary if a designer wants to influence the sizes\n at which grayscaling is used under Windows. Etc.\n ", "result": "INFO"}, {"description": "Are there unwanted tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There are no unwanted tables.", "status": "PASS", "traceback": null}], "rationale": "\n Some font editors store source data in their own SFNT tables, and these\n can sometimes sneak into final release files, which should only have\n OpenType spec tables.\n ", "result": "PASS"}, {"description": "Check correctness of STAT table strings", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n On the STAT table, the \"Italic\" keyword must not be used on AxisValues\n for variation axes other than 'ital'.\n ", "result": "SKIP"}, {"description": "Glyph names are all valid?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyph names are all valid.", "status": "PASS", "traceback": null}], "rationale": "\n Microsoft's recommendations for OpenType Fonts states the following:\n\n 'NOTE: The PostScript glyph name must be no longer than 31 characters,\n include only uppercase or lowercase English letters, European digits,\n the period or the underscore, i.e. from the set [A-Za-z0-9_.] and\n should start with a letter, except the special glyph name \".notdef\"\n which starts with a period.'\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/recom#post-table\n\n\n In practice, though, particularly in modern environments, glyph names\n can be as long as 63 characters.\n\n According to the \"Adobe Glyph List Specification\" available at:\n\n https://github.com/adobe-type-tools/agl-specification\n ", "result": "PASS"}, {"description": "Font contains unique glyph names?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyph names are all unique.", "status": "PASS", "traceback": null}], "rationale": "\n Duplicate glyph names prevent font installation on Mac OS X.\n ", "result": "PASS"}, {"description": "List all superfamily filepaths", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow [code: family-path]", "status": "INFO", "traceback": null}], "rationale": "\n This is a merely informative check that lists all sibling families\n detected by fontbakery.\n\n Only the fontfiles in these directories will be considered in\n superfamily-level checks.\n ", "result": "INFO"}, {"description": "Each font in set of sibling families must have the same set of vertical metrics values.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Sibling families were not detected.", "status": "SKIP", "traceback": null}], "rationale": "\n We may want all fonts within a super-family (all sibling families) to have\n the same vertical metrics so their line spacing is consistent\n across the super-family.\n\n This is an experimental extended version of\n com.google.fonts/check/family/vertical_metrics and for now it will only\n result in WARNs.\n ", "result": "SKIP"}, {"description": "Ensure indic fonts have the Indian Rupee Sign glyph.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_indic_font", "status": "SKIP", "traceback": null}], "rationale": "\n Per Bureau of Indian Standards every font supporting one of the\n official Indian languages needs to include Unicode Character\n \u201c\u20b9\u201d (U+20B9) Indian Rupee Sign.\n ", "result": "SKIP"}, {"description": "Check font contains no unreachable glyphs", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font did not contain any unreachable glyphs", "status": "PASS", "traceback": null}], "rationale": "\n Glyphs are either accessible directly through Unicode codepoints or through\n substitution rules.\n\n In Color Fonts, glyphs are also referenced by the COLR table.\n\n Any glyphs not accessible by either of these means\n are redundant and serve only to increase the font's file size.\n ", "result": "PASS"}, {"description": "Check if each glyph has the recommended amount of contours.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.\n\nThe following glyphs do not have the recommended number of contours:\n\n\t- Glyph name: exclam\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: quotedbl\tContours detected: 14\tExpected: 2\n\n\t- Glyph name: numbersign\tContours detected: 15\tExpected: 2\n\n\t- Glyph name: dollar\tContours detected: 13\tExpected: 1, 3 or 5\n\n\t- Glyph name: percent\tContours detected: 35\tExpected: 5\n\n\t- Glyph name: ampersand\tContours detected: 14\tExpected: 1, 2 or 3\n\n\t- Glyph name: quotesingle\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: parenleft\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: parenright\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: asterisk\tContours detected: 10\tExpected: 1 or 4\n\n\t- Glyph name: plus\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: comma\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: hyphen\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: period\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: slash\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: zero\tContours detected: 6\tExpected: 2 or 3\n\n\t- Glyph name: one\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: two\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: three\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: four\tContours detected: 11\tExpected: 1 or 2\n\n\t- Glyph name: five\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: six\tContours detected: 8\tExpected: 1 or 2\n\n\t- Glyph name: seven\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: eight\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: nine\tContours detected: 9\tExpected: 1 or 2\n\n\t- Glyph name: colon\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: semicolon\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: less\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: equal\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: greater\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: question\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: at\tContours detected: 37\tExpected: 2\n\n\t- Glyph name: A\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: B\tContours detected: 7\tExpected: 2 or 3\n\n\t- Glyph name: C\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: D\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: E\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: F\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: G\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: H\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: I\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: J\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: K\tContours detected: 11\tExpected: 1 or 2\n\n\t- Glyph name: L\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: M\tContours detected: 13\tExpected: 1\n\n\t- Glyph name: N\tContours detected: 13\tExpected: 1\n\n\t- Glyph name: O\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: P\tContours detected: 5\tExpected: 1 or 2\n\n\t- Glyph name: Q\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: R\tContours detected: 9\tExpected: 1 or 2\n\n\t- Glyph name: S\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: T\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: U\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: V\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: W\tContours detected: 13\tExpected: 1 or 2\n\n\t- Glyph name: X\tContours detected: 16\tExpected: 1\n\n\t- Glyph name: Y\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: Z\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: bracketleft\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: backslash\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: bracketright\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: asciicircum\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: underscore\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: grave\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: a\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: b\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: c\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: d\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: e\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: f\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: g\tContours detected: 9\tExpected: 2 or 3\n\n\t- Glyph name: h\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: i\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: j\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: k\tContours detected: 12\tExpected: 1 or 2\n\n\t- Glyph name: l\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: m\tContours detected: 32\tExpected: 1\n\n\t- Glyph name: n\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: o\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: p\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: q\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: r\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: s\tContours detected: 16\tExpected: 1\n\n\t- Glyph name: t\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: u\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: v\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: w\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: x\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: y\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: z\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: braceleft\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: bar\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: braceright\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: asciitilde\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: exclamdown\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: cent\tContours detected: 6\tExpected: 1 or 2\n\n\t- Glyph name: sterling\tContours detected: 8\tExpected: 1 or 2\n\n\t- Glyph name: currency\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: yen\tContours detected: 9\tExpected: 1 or 2\n\n\t- Glyph name: brokenbar\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: section\tContours detected: 20\tExpected: 2\n\n\t- Glyph name: dieresis\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: copyright\tContours detected: 48\tExpected: 3\n\n\t- Glyph name: ordfeminine\tContours detected: 4\tExpected: 2 or 3\n\n\t- Glyph name: guillemotleft\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: logicalnot\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: registered\tContours detected: 43\tExpected: 3 or 4\n\n\t- Glyph name: macron\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: degree\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: plusminus\tContours detected: 6\tExpected: 1 or 2\n\n\t- Glyph name: uni00B2\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: uni00B3\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: acute\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni00B5\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: paragraph\tContours detected: 30\tExpected: 1, 2 or 3\n\n\t- Glyph name: periodcentered\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: cedilla\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: uni00B9\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: ordmasculine\tContours detected: 6\tExpected: 2 or 3\n\n\t- Glyph name: guillemotright\tContours detected: 13\tExpected: 2\n\n\t- Glyph name: onequarter\tContours detected: 13\tExpected: 3 or 4\n\n\t- Glyph name: onehalf\tContours detected: 13\tExpected: 3\n\n\t- Glyph name: threequarters\tContours detected: 16\tExpected: 3 or 4\n\n\t- Glyph name: questiondown\tContours detected: 14\tExpected: 2\n\n\t- Glyph name: Agrave\tContours detected: 14\tExpected: 3\n\n\t- Glyph name: Aacute\tContours detected: 17\tExpected: 3\n\n\t- Glyph name: Acircumflex\tContours detected: 16\tExpected: 3\n\n\t- Glyph name: Atilde\tContours detected: 14\tExpected: 3\n\n\t- Glyph name: Adieresis\tContours detected: 16\tExpected: 4\n\n\t- Glyph name: Aring\tContours detected: 18\tExpected: 3 or 4\n\n\t- Glyph name: AE\tContours detected: 13\tExpected: 2\n\n\t- Glyph name: Ccedilla\tContours detected: 8\tExpected: 1 or 2\n\n\t- Glyph name: Egrave\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: Eacute\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: Ecircumflex\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: Edieresis\tContours detected: 8\tExpected: 3\n\n\t- Glyph name: Igrave\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Iacute\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: Icircumflex\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: Idieresis\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Eth\tContours detected: 17\tExpected: 2\n\n\t- Glyph name: Ntilde\tContours detected: 15\tExpected: 2\n\n\t- Glyph name: Ograve\tContours detected: 8\tExpected: 3\n\n\t- Glyph name: Oacute\tContours detected: 11\tExpected: 3\n\n\t- Glyph name: Ocircumflex\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: Otilde\tContours detected: 8\tExpected: 3\n\n\t- Glyph name: Odieresis\tContours detected: 10\tExpected: 4\n\n\t- Glyph name: multiply\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: Oslash\tContours detected: 16\tExpected: 2 or 3\n\n\t- Glyph name: Ugrave\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Uacute\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: Ucircumflex\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: Udieresis\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Yacute\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: Thorn\tContours detected: 5\tExpected: 1 or 2\n\n\t- Glyph name: germandbls\tContours detected: 16\tExpected: 1\n\n\t- Glyph name: agrave\tContours detected: 9\tExpected: 3\n\n\t- Glyph name: aacute\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: acircumflex\tContours detected: 11\tExpected: 3\n\n\t- Glyph name: atilde\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: adieresis\tContours detected: 17\tExpected: 4\n\n\t- Glyph name: aring\tContours detected: 12\tExpected: 4\n\n\t- Glyph name: ae\tContours detected: 16\tExpected: 3\n\n\t- Glyph name: ccedilla\tContours detected: 10\tExpected: 1 or 2\n\n\t- Glyph name: egrave\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: eacute\tContours detected: 11\tExpected: 3\n\n\t- Glyph name: ecircumflex\tContours detected: 12\tExpected: 3\n\n\t- Glyph name: edieresis\tContours detected: 18\tExpected: 4\n\n\t- Glyph name: igrave\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: iacute\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: icircumflex\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: idieresis\tContours detected: 12\tExpected: 3\n\n\t- Glyph name: eth\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: ntilde\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: ograve\tContours detected: 13\tExpected: 3\n\n\t- Glyph name: oacute\tContours detected: 14\tExpected: 3\n\n\t- Glyph name: ocircumflex\tContours detected: 15\tExpected: 3\n\n\t- Glyph name: otilde\tContours detected: 14\tExpected: 3\n\n\t- Glyph name: odieresis\tContours detected: 21\tExpected: 4\n\n\t- Glyph name: divide\tContours detected: 8\tExpected: 3\n\n\t- Glyph name: oslash\tContours detected: 9\tExpected: 3\n\n\t- Glyph name: ugrave\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uacute\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: ucircumflex\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: udieresis\tContours detected: 15\tExpected: 3\n\n\t- Glyph name: yacute\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: thorn\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: ydieresis\tContours detected: 16\tExpected: 3\n\n\t- Glyph name: Amacron\tContours detected: 16\tExpected: 3\n\n\t- Glyph name: amacron\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: Abreve\tContours detected: 15\tExpected: 3\n\n\t- Glyph name: abreve\tContours detected: 12\tExpected: 3\n\n\t- Glyph name: Aogonek\tContours detected: 10\tExpected: 2 or 3\n\n\t- Glyph name: aogonek\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: Cacute\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: cacute\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: Ccircumflex\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: ccircumflex\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: Cdotaccent\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: cdotaccent\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: Ccaron\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: ccaron\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: Dcaron\tContours detected: 7\tExpected: 3\n\n\t- Glyph name: dcaron\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: Dcroat\tContours detected: 13\tExpected: 2\n\n\t- Glyph name: dcroat\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: Emacron\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: emacron\tContours detected: 11\tExpected: 3\n\n\t- Glyph name: Ebreve\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: ebreve\tContours detected: 13\tExpected: 3\n\n\t- Glyph name: Edotaccent\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: edotaccent\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: eogonek\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: Ecaron\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: ecaron\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: Gcircumflex\tContours detected: 13\tExpected: 2\n\n\t- Glyph name: gcircumflex\tContours detected: 13\tExpected: 3 or 4\n\n\t- Glyph name: Gbreve\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: gbreve\tContours detected: 14\tExpected: 3 or 4\n\n\t- Glyph name: Gdotaccent\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: gdotaccent\tContours detected: 11\tExpected: 3 or 4\n\n\t- Glyph name: uni0122\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: uni0123\tContours detected: 12\tExpected: 3 or 4\n\n\t- Glyph name: Hcircumflex\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: hcircumflex\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: Hbar\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: hbar\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: Itilde\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: itilde\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: Imacron\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: imacron\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: Ibreve\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: ibreve\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: iogonek\tContours detected: 5\tExpected: 2 or 3\n\n\t- Glyph name: Idotaccent\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: dotlessi\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: IJ\tContours detected: 12\tExpected: 1 or 2\n\n\t- Glyph name: ij\tContours detected: 8\tExpected: 3 or 4\n\n\t- Glyph name: Jcircumflex\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: jcircumflex\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uni0136\tContours detected: 14\tExpected: 2 or 3\n\n\t- Glyph name: uni0137\tContours detected: 14\tExpected: 2 or 3\n\n\t- Glyph name: kgreenlandic\tContours detected: 12\tExpected: 1 or 2\n\n\t- Glyph name: Lacute\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: lacute\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni013B\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni013C\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Lcaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: lcaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ldot\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ldot\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Lslash\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: lslash\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Nacute\tContours detected: 18\tExpected: 2\n\n\t- Glyph name: nacute\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: uni0145\tContours detected: 16\tExpected: 2\n\n\t- Glyph name: uni0146\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: Ncaron\tContours detected: 16\tExpected: 2\n\n\t- Glyph name: ncaron\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: napostrophe\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Eng\tContours detected: 10\tExpected: 1\n\n\t- Glyph name: eng\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: Omacron\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: omacron\tContours detected: 14\tExpected: 3\n\n\t- Glyph name: Obreve\tContours detected: 9\tExpected: 3\n\n\t- Glyph name: obreve\tContours detected: 16\tExpected: 3\n\n\t- Glyph name: Ohungarumlaut\tContours detected: 13\tExpected: 4\n\n\t- Glyph name: ohungarumlaut\tContours detected: 18\tExpected: 4\n\n\t- Glyph name: OE\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: oe\tContours detected: 15\tExpected: 3\n\n\t- Glyph name: Racute\tContours detected: 14\tExpected: 3\n\n\t- Glyph name: racute\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni0156\tContours detected: 12\tExpected: 3\n\n\t- Glyph name: uni0157\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Rcaron\tContours detected: 12\tExpected: 3\n\n\t- Glyph name: rcaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Sacute\tContours detected: 19\tExpected: 2\n\n\t- Glyph name: sacute\tContours detected: 19\tExpected: 2\n\n\t- Glyph name: Scircumflex\tContours detected: 18\tExpected: 2\n\n\t- Glyph name: scircumflex\tContours detected: 20\tExpected: 2\n\n\t- Glyph name: Scedilla\tContours detected: 16\tExpected: 1 or 2\n\n\t- Glyph name: scedilla\tContours detected: 9\tExpected: 1 or 2\n\n\t- Glyph name: Scaron\tContours detected: 17\tExpected: 2\n\n\t- Glyph name: scaron\tContours detected: 18\tExpected: 2\n\n\t- Glyph name: Tcaron\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: tcaron\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: Tbar\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: tbar\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: Utilde\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: utilde\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: Umacron\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: umacron\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: Ubreve\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: ubreve\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: Uring\tContours detected: 8\tExpected: 3\n\n\t- Glyph name: uring\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: Uhungarumlaut\tContours detected: 9\tExpected: 3\n\n\t- Glyph name: uhungarumlaut\tContours detected: 12\tExpected: 3\n\n\t- Glyph name: Uogonek\tContours detected: 70\tExpected: 1\n\n\t- Glyph name: uogonek\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: Wcircumflex\tContours detected: 17\tExpected: 2\n\n\t- Glyph name: wcircumflex\tContours detected: 18\tExpected: 2\n\n\t- Glyph name: Ycircumflex\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: ycircumflex\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: Ydieresis\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: Zacute\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: zacute\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: Zdotaccent\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: zdotaccent\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: Zcaron\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: zcaron\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: longs\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: florin\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: AEacute\tContours detected: 18\tExpected: 3\n\n\t- Glyph name: aeacute\tContours detected: 19\tExpected: 4\n\n\t- Glyph name: Oslashacute\tContours detected: 21\tExpected: 4\n\n\t- Glyph name: oslashacute\tContours detected: 12\tExpected: 4\n\n\t- Glyph name: uni0218\tContours detected: 17\tExpected: 2\n\n\t- Glyph name: uni0219\tContours detected: 18\tExpected: 2\n\n\t- Glyph name: uni021A\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni021B\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: uni0237\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni02BC\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: circumflex\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: caron\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: breve\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: dotaccent\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: ring\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: ogonek\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: tilde\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: hungarumlaut\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: gravecomb\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: acutecomb\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni0302\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: tildecomb\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni0304\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni0306\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni0307\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0308\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: uni030A\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni030B\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uni030C\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0312\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni0326\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0327\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: uni0328\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0335\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0337\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: uni0338\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: uni0400\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: uni0401\tContours detected: 14\tExpected: 3\n\n\t- Glyph name: uni0402\tContours detected: 16\tExpected: 1\n\n\t- Glyph name: uni0403\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uni0404\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: uni0405\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: uni0406\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0407\tContours detected: 12\tExpected: 3\n\n\t- Glyph name: uni0408\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: uni0409\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uni040A\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uni040B\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni040C\tContours detected: 16\tExpected: 2\n\n\t- Glyph name: uni040D\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: uni040E\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: uni040F\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni0410\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: uni0411\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: uni0412\tContours detected: 7\tExpected: 3\n\n\t- Glyph name: uni0413\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0414\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni0415\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: uni0416\tContours detected: 25\tExpected: 1\n\n\t- Glyph name: uni0417\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: uni0418\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: uni0419\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: uni041A\tContours detected: 11\tExpected: 1\n\n\t- Glyph name: uni041B\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni041C\tContours detected: 13\tExpected: 1\n\n\t- Glyph name: uni041D\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni041E\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: uni041F\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0420\tContours detected: 5\tExpected: 1 or 2\n\n\t- Glyph name: uni0421\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni0422\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0423\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni0424\tContours detected: 38\tExpected: 3\n\n\t- Glyph name: uni0425\tContours detected: 16\tExpected: 1\n\n\t- Glyph name: uni0426\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni0427\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni0428\tContours detected: 48\tExpected: 1\n\n\t- Glyph name: uni0429\tContours detected: 47\tExpected: 1\n\n\t- Glyph name: uni042A\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni042B\tContours detected: 16\tExpected: 3\n\n\t- Glyph name: uni042C\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni042D\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: uni042E\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: uni042F\tContours detected: 15\tExpected: 2\n\n\t- Glyph name: uni0430\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uni0431\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uni0432\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0433\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0434\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: uni0435\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: uni0436\tContours detected: 28\tExpected: 1\n\n\t- Glyph name: uni0437\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: uni0438\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: uni0439\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: uni043A\tContours detected: 68\tExpected: 1\n\n\t- Glyph name: uni043B\tContours detected: 13\tExpected: 1\n\n\t- Glyph name: uni043C\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: uni043D\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni043E\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: uni043F\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0440\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uni0441\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: uni0442\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0443\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: uni0444\tContours detected: 27\tExpected: 3\n\n\t- Glyph name: uni0445\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: uni0446\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni0447\tContours detected: 10\tExpected: 1\n\n\t- Glyph name: uni0448\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: uni0449\tContours detected: 35\tExpected: 1\n\n\t- Glyph name: uni044A\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: uni044B\tContours detected: 17\tExpected: 3\n\n\t- Glyph name: uni044C\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: uni044D\tContours detected: 10\tExpected: 1\n\n\t- Glyph name: uni044E\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: uni044F\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: uni0450\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: uni0451\tContours detected: 18\tExpected: 4\n\n\t- Glyph name: uni0452\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni0453\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni0454\tContours detected: 10\tExpected: 1\n\n\t- Glyph name: uni0455\tContours detected: 16\tExpected: 1\n\n\t- Glyph name: uni0456\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0457\tContours detected: 12\tExpected: 3\n\n\t- Glyph name: uni0458\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0459\tContours detected: 14\tExpected: 2\n\n\t- Glyph name: uni045A\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: uni045B\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni045C\tContours detected: 71\tExpected: 2\n\n\t- Glyph name: uni045D\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: uni045E\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: uni045F\tContours detected: 5\tExpected: 1 or 2\n\n\t- Glyph name: uni0462\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uni0463\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni046A\tContours detected: 20\tExpected: 2\n\n\t- Glyph name: uni046B\tContours detected: 20\tExpected: 2\n\n\t- Glyph name: uni0472\tContours detected: 9\tExpected: 3\n\n\t- Glyph name: uni0473\tContours detected: 13\tExpected: 3\n\n\t- Glyph name: uni0474\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: uni0475\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: uni0490\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni0491\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni0492\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni0493\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: uni0494\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: uni0495\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni0496\tContours detected: 23\tExpected: 1 or 2\n\n\t- Glyph name: uni0497\tContours detected: 24\tExpected: 1 or 2\n\n\t- Glyph name: uni0498\tContours detected: 8\tExpected: 1 or 2\n\n\t- Glyph name: uni0499\tContours detected: 6\tExpected: 1 or 2\n\n\t- Glyph name: uni049A\tContours detected: 11\tExpected: 1 or 2\n\n\t- Glyph name: uni049B\tContours detected: 12\tExpected: 1 or 2\n\n\t- Glyph name: uni049C\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni049D\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: uni04A0\tContours detected: 12\tExpected: 1\n\n\t- Glyph name: uni04A1\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: uni04A2\tContours detected: 3\tExpected: 1 or 2\n\n\t- Glyph name: uni04A3\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: uni04A4\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: uni04A5\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni04AA\tContours detected: 3\tExpected: 1 or 2\n\n\t- Glyph name: uni04AB\tContours detected: 5\tExpected: 1 or 2\n\n\t- Glyph name: Ustraitcy\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: ustraitcy\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: Ustraitstrokecy\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: ustraitstrokecy\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: uni04B6\tContours detected: 3\tExpected: 1 or 2\n\n\t- Glyph name: uni04B7\tContours detected: 8\tExpected: 1 or 2\n\n\t- Glyph name: uni04B8\tContours detected: 15\tExpected: 1\n\n\t- Glyph name: uni04B9\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: uni04BA\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04BB\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04C0\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04C1\tContours detected: 29\tExpected: 2\n\n\t- Glyph name: uni04C2\tContours detected: 32\tExpected: 2\n\n\t- Glyph name: uni04CB\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: uni04CC\tContours detected: 7\tExpected: 1 or 2\n\n\t- Glyph name: uni04CF\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04D0\tContours detected: 16\tExpected: 3\n\n\t- Glyph name: uni04D1\tContours detected: 11\tExpected: 3\n\n\t- Glyph name: uni04D2\tContours detected: 22\tExpected: 4\n\n\t- Glyph name: uni04D3\tContours detected: 17\tExpected: 4\n\n\t- Glyph name: uni04D4\tContours detected: 13\tExpected: 2\n\n\t- Glyph name: uni04D5\tContours detected: 16\tExpected: 3\n\n\t- Glyph name: uni04D6\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: uni04D7\tContours detected: 12\tExpected: 3\n\n\t- Glyph name: uni04D8\tContours detected: 18\tExpected: 2\n\n\t- Glyph name: uni04D9\tContours detected: 15\tExpected: 2\n\n\t- Glyph name: uni04DC\tContours detected: 35\tExpected: 3\n\n\t- Glyph name: uni04DD\tContours detected: 38\tExpected: 3\n\n\t- Glyph name: uni04DE\tContours detected: 19\tExpected: 3\n\n\t- Glyph name: uni04DF\tContours detected: 17\tExpected: 3\n\n\t- Glyph name: uni04E2\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: uni04E3\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: uni04E4\tContours detected: 18\tExpected: 3\n\n\t- Glyph name: uni04E5\tContours detected: 18\tExpected: 3\n\n\t- Glyph name: uni04E6\tContours detected: 16\tExpected: 4\n\n\t- Glyph name: uni04E7\tContours detected: 21\tExpected: 4\n\n\t- Glyph name: uni04E8\tContours detected: 7\tExpected: 3\n\n\t- Glyph name: uni04E9\tContours detected: 13\tExpected: 3\n\n\t- Glyph name: uni04EE\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: uni04EF\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: uni04F0\tContours detected: 15\tExpected: 3\n\n\t- Glyph name: uni04F1\tContours detected: 16\tExpected: 3\n\n\t- Glyph name: uni04F2\tContours detected: 12\tExpected: 3\n\n\t- Glyph name: uni04F3\tContours detected: 13\tExpected: 3\n\n\t- Glyph name: uni04F4\tContours detected: 13\tExpected: 3\n\n\t- Glyph name: uni04F5\tContours detected: 20\tExpected: 3\n\n\t- Glyph name: uni04F6\tContours detected: 3\tExpected: 1 or 2\n\n\t- Glyph name: uni04F7\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: uni04F8\tContours detected: 26\tExpected: 5\n\n\t- Glyph name: uni04F9\tContours detected: 27\tExpected: 5\n\n\t- Glyph name: uni051A\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: uni051B\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uni051C\tContours detected: 13\tExpected: 1\n\n\t- Glyph name: uni051D\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: uni0524\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni0525\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: Wgrave\tContours detected: 15\tExpected: 2\n\n\t- Glyph name: wgrave\tContours detected: 16\tExpected: 2\n\n\t- Glyph name: Wacute\tContours detected: 18\tExpected: 2\n\n\t- Glyph name: wacute\tContours detected: 17\tExpected: 2\n\n\t- Glyph name: Wdieresis\tContours detected: 17\tExpected: 3\n\n\t- Glyph name: wdieresis\tContours detected: 24\tExpected: 3\n\n\t- Glyph name: uni1E9E\tContours detected: 19\tExpected: 1\n\n\t- Glyph name: Ygrave\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: ygrave\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: endash\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: emdash\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: quoteleft\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: quoteright\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: quotesinglbase\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: quotedblleft\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: quotedblright\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: quotedblbase\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: dagger\tContours detected: 3\tExpected: 1 or 2\n\n\t- Glyph name: daggerdbl\tContours detected: 4\tExpected: 1 or 3\n\n\t- Glyph name: bullet\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: ellipsis\tContours detected: 22\tExpected: 3\n\n\t- Glyph name: perthousand\tContours detected: 52\tExpected: 6 or 7\n\n\t- Glyph name: guilsinglleft\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: guilsinglright\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: fraction\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: uni2070\tContours detected: 10\tExpected: 2 or 3\n\n\t- Glyph name: uni2074\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: uni2075\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: uni2076\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uni2077\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni2078\tContours detected: 7\tExpected: 3\n\n\t- Glyph name: uni2079\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni207D\tContours detected: 10\tExpected: 1\n\n\t- Glyph name: uni207E\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni2080\tContours detected: 10\tExpected: 2 or 3\n\n\t- Glyph name: uni2081\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni2082\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: uni2083\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni2084\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: uni2085\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: uni2086\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uni2087\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni2088\tContours detected: 7\tExpected: 3\n\n\t- Glyph name: uni2089\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni208D\tContours detected: 10\tExpected: 1\n\n\t- Glyph name: uni208E\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni20AA\tContours detected: 24\tExpected: 2\n\n\t- Glyph name: Euro\tContours detected: 8\tExpected: 1 or 2\n\n\t- Glyph name: uni20AE\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni20B4\tContours detected: 5\tExpected: 1 or 2\n\n\t- Glyph name: uni20B8\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni20B9\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: uni20BD\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: uni2116\tContours detected: 52\tExpected: 3 or 4\n\n\t- Glyph name: trademark\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: estimated\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uni2153\tContours detected: 14\tExpected: 3\n\n\t- Glyph name: uni2154\tContours detected: 16\tExpected: 1 or 3\n\n\t- Glyph name: oneeighth\tContours detected: 16\tExpected: 5\n\n\t- Glyph name: threeeighths\tContours detected: 19\tExpected: 5\n\n\t- Glyph name: fiveeighths\tContours detected: 18\tExpected: 5\n\n\t- Glyph name: seveneighths\tContours detected: 16\tExpected: 5\n\n\t- Glyph name: partialdiff\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: uni2206\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: product\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: summation\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: minus\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni2215\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: radical\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: infinity\tContours detected: 13\tExpected: 3\n\n\t- Glyph name: integral\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: approxequal\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: notequal\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: lessequal\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: greaterequal\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: lozenge\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: fi\tContours detected: 6\tExpected: 1, 2 or 3\n\n\t- Glyph name: fl\tContours detected: 17\tExpected: 1 or 2\n\n\t- Glyph name: A\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: AE\tContours detected: 13\tExpected: 2\n\n\t- Glyph name: AEacute\tContours detected: 18\tExpected: 3\n\n\t- Glyph name: Aacute\tContours detected: 17\tExpected: 3\n\n\t- Glyph name: Abreve\tContours detected: 15\tExpected: 3\n\n\t- Glyph name: Acircumflex\tContours detected: 16\tExpected: 3\n\n\t- Glyph name: Adieresis\tContours detected: 16\tExpected: 4\n\n\t- Glyph name: Agrave\tContours detected: 14\tExpected: 3\n\n\t- Glyph name: Amacron\tContours detected: 16\tExpected: 3\n\n\t- Glyph name: Aogonek\tContours detected: 10\tExpected: 2 or 3\n\n\t- Glyph name: Aring\tContours detected: 18\tExpected: 3 or 4\n\n\t- Glyph name: Atilde\tContours detected: 14\tExpected: 3\n\n\t- Glyph name: B\tContours detected: 7\tExpected: 2 or 3\n\n\t- Glyph name: C\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: Cacute\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: Ccaron\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: Ccedilla\tContours detected: 8\tExpected: 1 or 2\n\n\t- Glyph name: Ccircumflex\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: Cdotaccent\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: D\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Dcaron\tContours detected: 7\tExpected: 3\n\n\t- Glyph name: Dcroat\tContours detected: 13\tExpected: 2\n\n\t- Glyph name: E\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: Eacute\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: Ebreve\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: Ecaron\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: Ecircumflex\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: Edieresis\tContours detected: 8\tExpected: 3\n\n\t- Glyph name: Edotaccent\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: Egrave\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: Emacron\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: Eng\tContours detected: 10\tExpected: 1\n\n\t- Glyph name: Eth\tContours detected: 17\tExpected: 2\n\n\t- Glyph name: Euro\tContours detected: 8\tExpected: 1 or 2\n\n\t- Glyph name: F\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: G\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: Gbreve\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: Gcircumflex\tContours detected: 13\tExpected: 2\n\n\t- Glyph name: Gdotaccent\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: H\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: Hbar\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: Hcircumflex\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: I\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: IJ\tContours detected: 12\tExpected: 1 or 2\n\n\t- Glyph name: Iacute\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: Ibreve\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: Icircumflex\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: Idieresis\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Idotaccent\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Igrave\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Imacron\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: Itilde\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: J\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: Jcircumflex\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: K\tContours detected: 11\tExpected: 1 or 2\n\n\t- Glyph name: L\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Lacute\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: Lcaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ldot\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Lslash\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: M\tContours detected: 13\tExpected: 1\n\n\t- Glyph name: N\tContours detected: 13\tExpected: 1\n\n\t- Glyph name: Nacute\tContours detected: 18\tExpected: 2\n\n\t- Glyph name: Ncaron\tContours detected: 16\tExpected: 2\n\n\t- Glyph name: Ntilde\tContours detected: 15\tExpected: 2\n\n\t- Glyph name: O\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: OE\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: Oacute\tContours detected: 11\tExpected: 3\n\n\t- Glyph name: Ocircumflex\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: Odieresis\tContours detected: 10\tExpected: 4\n\n\t- Glyph name: Ograve\tContours detected: 8\tExpected: 3\n\n\t- Glyph name: Ohungarumlaut\tContours detected: 13\tExpected: 4\n\n\t- Glyph name: Omacron\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: Oslash\tContours detected: 16\tExpected: 2 or 3\n\n\t- Glyph name: Oslashacute\tContours detected: 21\tExpected: 4\n\n\t- Glyph name: Otilde\tContours detected: 8\tExpected: 3\n\n\t- Glyph name: P\tContours detected: 5\tExpected: 1 or 2\n\n\t- Glyph name: Q\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: R\tContours detected: 9\tExpected: 1 or 2\n\n\t- Glyph name: Racute\tContours detected: 14\tExpected: 3\n\n\t- Glyph name: Rcaron\tContours detected: 12\tExpected: 3\n\n\t- Glyph name: S\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: Sacute\tContours detected: 19\tExpected: 2\n\n\t- Glyph name: Scaron\tContours detected: 17\tExpected: 2\n\n\t- Glyph name: Scircumflex\tContours detected: 18\tExpected: 2\n\n\t- Glyph name: T\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Tbar\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: Tcaron\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: Thorn\tContours detected: 5\tExpected: 1 or 2\n\n\t- Glyph name: U\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Uacute\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: Ubreve\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: Ucircumflex\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: Udieresis\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Ugrave\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Uhungarumlaut\tContours detected: 9\tExpected: 3\n\n\t- Glyph name: Umacron\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: Uogonek\tContours detected: 70\tExpected: 1\n\n\t- Glyph name: Uring\tContours detected: 8\tExpected: 3\n\n\t- Glyph name: Utilde\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: V\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: W\tContours detected: 13\tExpected: 1 or 2\n\n\t- Glyph name: Wacute\tContours detected: 18\tExpected: 2\n\n\t- Glyph name: Wcircumflex\tContours detected: 17\tExpected: 2\n\n\t- Glyph name: Wdieresis\tContours detected: 17\tExpected: 3\n\n\t- Glyph name: Wgrave\tContours detected: 15\tExpected: 2\n\n\t- Glyph name: X\tContours detected: 16\tExpected: 1\n\n\t- Glyph name: Y\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: Yacute\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: Ycircumflex\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: Ydieresis\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: Ygrave\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: Z\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: Zacute\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: Zcaron\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: Zdotaccent\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: a\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: aacute\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: abreve\tContours detected: 12\tExpected: 3\n\n\t- Glyph name: acircumflex\tContours detected: 11\tExpected: 3\n\n\t- Glyph name: acute\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: adieresis\tContours detected: 17\tExpected: 4\n\n\t- Glyph name: ae\tContours detected: 16\tExpected: 3\n\n\t- Glyph name: aeacute\tContours detected: 19\tExpected: 4\n\n\t- Glyph name: agrave\tContours detected: 9\tExpected: 3\n\n\t- Glyph name: amacron\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: ampersand\tContours detected: 14\tExpected: 1, 2 or 3\n\n\t- Glyph name: aogonek\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: approxequal\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: aring\tContours detected: 12\tExpected: 4\n\n\t- Glyph name: asciicircum\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: asciitilde\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: asterisk\tContours detected: 10\tExpected: 1 or 4\n\n\t- Glyph name: at\tContours detected: 37\tExpected: 2\n\n\t- Glyph name: atilde\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: b\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: backslash\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: bar\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: braceleft\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: braceright\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: bracketleft\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: bracketright\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: breve\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: brokenbar\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: bullet\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: c\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: cacute\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: caron\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: ccaron\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: ccedilla\tContours detected: 10\tExpected: 1 or 2\n\n\t- Glyph name: ccircumflex\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: cdotaccent\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: cedilla\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: cent\tContours detected: 6\tExpected: 1 or 2\n\n\t- Glyph name: circumflex\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: colon\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: comma\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: copyright\tContours detected: 48\tExpected: 3\n\n\t- Glyph name: currency\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: d\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: dagger\tContours detected: 3\tExpected: 1 or 2\n\n\t- Glyph name: daggerdbl\tContours detected: 4\tExpected: 1 or 3\n\n\t- Glyph name: dcaron\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: dcroat\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: degree\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: dieresis\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: divide\tContours detected: 8\tExpected: 3\n\n\t- Glyph name: dollar\tContours detected: 13\tExpected: 1, 3 or 5\n\n\t- Glyph name: dotaccent\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: dotlessi\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: e\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: eacute\tContours detected: 11\tExpected: 3\n\n\t- Glyph name: ebreve\tContours detected: 13\tExpected: 3\n\n\t- Glyph name: ecaron\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: ecircumflex\tContours detected: 12\tExpected: 3\n\n\t- Glyph name: edieresis\tContours detected: 18\tExpected: 4\n\n\t- Glyph name: edotaccent\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: egrave\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: eight\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: ellipsis\tContours detected: 22\tExpected: 3\n\n\t- Glyph name: emacron\tContours detected: 11\tExpected: 3\n\n\t- Glyph name: emdash\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: endash\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: eng\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: eogonek\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: equal\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: estimated\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: eth\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: exclam\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: exclamdown\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: f\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: fi\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: five\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: fiveeighths\tContours detected: 18\tExpected: 5\n\n\t- Glyph name: fl\tContours detected: 17\tExpected: 2\n\n\t- Glyph name: four\tContours detected: 11\tExpected: 1 or 2\n\n\t- Glyph name: fraction\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: g\tContours detected: 9\tExpected: 2 or 3\n\n\t- Glyph name: gbreve\tContours detected: 14\tExpected: 3 or 4\n\n\t- Glyph name: gcircumflex\tContours detected: 13\tExpected: 3 or 4\n\n\t- Glyph name: gdotaccent\tContours detected: 11\tExpected: 3 or 4\n\n\t- Glyph name: germandbls\tContours detected: 16\tExpected: 1\n\n\t- Glyph name: grave\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: greater\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: greaterequal\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: guillemotleft\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: guillemotright\tContours detected: 13\tExpected: 2\n\n\t- Glyph name: guilsinglleft\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: guilsinglright\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: h\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: hbar\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: hcircumflex\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: hungarumlaut\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: hyphen\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: i\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: iacute\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: ibreve\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: icircumflex\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: idieresis\tContours detected: 12\tExpected: 3\n\n\t- Glyph name: igrave\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ij\tContours detected: 8\tExpected: 3 or 4\n\n\t- Glyph name: imacron\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: infinity\tContours detected: 13\tExpected: 3\n\n\t- Glyph name: integral\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: iogonek\tContours detected: 5\tExpected: 2 or 3\n\n\t- Glyph name: itilde\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: j\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: jcircumflex\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: k\tContours detected: 12\tExpected: 1 or 2\n\n\t- Glyph name: kgreenlandic\tContours detected: 12\tExpected: 1 or 2\n\n\t- Glyph name: l\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: lacute\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: lcaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ldot\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: less\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: lessequal\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: logicalnot\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: longs\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: lozenge\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: lslash\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: m\tContours detected: 32\tExpected: 1\n\n\t- Glyph name: macron\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: minus\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: multiply\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: n\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: nacute\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: napostrophe\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ncaron\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: nine\tContours detected: 9\tExpected: 1 or 2\n\n\t- Glyph name: notequal\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: ntilde\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: numbersign\tContours detected: 15\tExpected: 2\n\n\t- Glyph name: o\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: oacute\tContours detected: 14\tExpected: 3\n\n\t- Glyph name: ocircumflex\tContours detected: 15\tExpected: 3\n\n\t- Glyph name: odieresis\tContours detected: 21\tExpected: 4\n\n\t- Glyph name: oe\tContours detected: 15\tExpected: 3\n\n\t- Glyph name: ogonek\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: ograve\tContours detected: 13\tExpected: 3\n\n\t- Glyph name: ohungarumlaut\tContours detected: 18\tExpected: 4\n\n\t- Glyph name: omacron\tContours detected: 14\tExpected: 3\n\n\t- Glyph name: one\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: oneeighth\tContours detected: 16\tExpected: 5\n\n\t- Glyph name: onehalf\tContours detected: 13\tExpected: 3\n\n\t- Glyph name: onequarter\tContours detected: 13\tExpected: 3 or 4\n\n\t- Glyph name: ordfeminine\tContours detected: 4\tExpected: 2 or 3\n\n\t- Glyph name: ordmasculine\tContours detected: 6\tExpected: 2 or 3\n\n\t- Glyph name: oslash\tContours detected: 9\tExpected: 3\n\n\t- Glyph name: oslashacute\tContours detected: 12\tExpected: 4\n\n\t- Glyph name: otilde\tContours detected: 14\tExpected: 3\n\n\t- Glyph name: p\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: paragraph\tContours detected: 30\tExpected: 1, 2 or 3\n\n\t- Glyph name: parenleft\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: parenright\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: partialdiff\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: percent\tContours detected: 35\tExpected: 5\n\n\t- Glyph name: period\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: periodcentered\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: perthousand\tContours detected: 52\tExpected: 6 or 7\n\n\t- Glyph name: plus\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: plusminus\tContours detected: 6\tExpected: 1 or 2\n\n\t- Glyph name: product\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: q\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: question\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: questiondown\tContours detected: 14\tExpected: 2\n\n\t- Glyph name: quotedbl\tContours detected: 14\tExpected: 2\n\n\t- Glyph name: quotedblbase\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: quotedblleft\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: quotedblright\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: quoteleft\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: quoteright\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: quotesinglbase\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: quotesingle\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: r\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: racute\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: radical\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: rcaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: registered\tContours detected: 43\tExpected: 3 or 4\n\n\t- Glyph name: ring\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: s\tContours detected: 16\tExpected: 1\n\n\t- Glyph name: sacute\tContours detected: 19\tExpected: 2\n\n\t- Glyph name: scaron\tContours detected: 18\tExpected: 2\n\n\t- Glyph name: scircumflex\tContours detected: 20\tExpected: 2\n\n\t- Glyph name: section\tContours detected: 20\tExpected: 2\n\n\t- Glyph name: semicolon\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: seven\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: seveneighths\tContours detected: 16\tExpected: 5\n\n\t- Glyph name: six\tContours detected: 8\tExpected: 1 or 2\n\n\t- Glyph name: slash\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: sterling\tContours detected: 8\tExpected: 1 or 2\n\n\t- Glyph name: summation\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: t\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: tbar\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: tcaron\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: thorn\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: three\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: threeeighths\tContours detected: 19\tExpected: 5\n\n\t- Glyph name: threequarters\tContours detected: 16\tExpected: 3 or 4\n\n\t- Glyph name: tilde\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: trademark\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: two\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: u\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uacute\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: ubreve\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: ucircumflex\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: udieresis\tContours detected: 15\tExpected: 3\n\n\t- Glyph name: ugrave\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uhungarumlaut\tContours detected: 12\tExpected: 3\n\n\t- Glyph name: umacron\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: underscore\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni00B5\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: uni0122\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: uni0123\tContours detected: 12\tExpected: 3 or 4\n\n\t- Glyph name: uni0136\tContours detected: 14\tExpected: 2 or 3\n\n\t- Glyph name: uni0137\tContours detected: 14\tExpected: 2 or 3\n\n\t- Glyph name: uni013B\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni013C\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0145\tContours detected: 16\tExpected: 2\n\n\t- Glyph name: uni0146\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni0156\tContours detected: 12\tExpected: 3\n\n\t- Glyph name: uni0157\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0218\tContours detected: 17\tExpected: 2\n\n\t- Glyph name: uni0219\tContours detected: 18\tExpected: 2\n\n\t- Glyph name: uni021A\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni021B\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: uni0237\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni02BC\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0302\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: uni0304\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni0306\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni0307\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0308\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: uni030A\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni030B\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uni030C\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0312\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni0326\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0327\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: uni0328\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0335\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0337\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: uni0338\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: uni0400\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: uni0401\tContours detected: 14\tExpected: 3\n\n\t- Glyph name: uni0402\tContours detected: 16\tExpected: 1\n\n\t- Glyph name: uni0403\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uni0404\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: uni0405\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: uni0406\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0407\tContours detected: 12\tExpected: 3\n\n\t- Glyph name: uni0408\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: uni0409\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uni040A\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uni040B\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni040C\tContours detected: 16\tExpected: 2\n\n\t- Glyph name: uni040D\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: uni040E\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: uni040F\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni0410\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: uni0411\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: uni0412\tContours detected: 7\tExpected: 3\n\n\t- Glyph name: uni0413\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0414\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni0415\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: uni0416\tContours detected: 25\tExpected: 1\n\n\t- Glyph name: uni0417\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: uni0418\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: uni0419\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: uni041A\tContours detected: 11\tExpected: 1\n\n\t- Glyph name: uni041B\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni041C\tContours detected: 13\tExpected: 1\n\n\t- Glyph name: uni041D\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni041E\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: uni041F\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0420\tContours detected: 5\tExpected: 1 or 2\n\n\t- Glyph name: uni0421\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni0422\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0423\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni0424\tContours detected: 38\tExpected: 3\n\n\t- Glyph name: uni0425\tContours detected: 16\tExpected: 1\n\n\t- Glyph name: uni0426\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni0427\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni0428\tContours detected: 48\tExpected: 1\n\n\t- Glyph name: uni0429\tContours detected: 47\tExpected: 1\n\n\t- Glyph name: uni042A\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni042B\tContours detected: 16\tExpected: 3\n\n\t- Glyph name: uni042C\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni042D\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: uni042E\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: uni042F\tContours detected: 15\tExpected: 2\n\n\t- Glyph name: uni0430\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uni0431\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uni0432\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0433\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0434\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: uni0435\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: uni0436\tContours detected: 28\tExpected: 1\n\n\t- Glyph name: uni0437\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: uni0438\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: uni0439\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: uni043A\tContours detected: 68\tExpected: 1\n\n\t- Glyph name: uni043B\tContours detected: 13\tExpected: 1\n\n\t- Glyph name: uni043C\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: uni043D\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni043E\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: uni043F\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0440\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uni0441\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: uni0442\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0443\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: uni0444\tContours detected: 27\tExpected: 3\n\n\t- Glyph name: uni0445\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: uni0446\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni0447\tContours detected: 10\tExpected: 1\n\n\t- Glyph name: uni0448\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: uni0449\tContours detected: 35\tExpected: 1\n\n\t- Glyph name: uni044A\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: uni044B\tContours detected: 17\tExpected: 3\n\n\t- Glyph name: uni044C\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: uni044D\tContours detected: 10\tExpected: 1\n\n\t- Glyph name: uni044E\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: uni044F\tContours detected: 12\tExpected: 2\n\n\t- Glyph name: uni0450\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: uni0451\tContours detected: 18\tExpected: 4\n\n\t- Glyph name: uni0452\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni0453\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni0454\tContours detected: 10\tExpected: 1\n\n\t- Glyph name: uni0455\tContours detected: 16\tExpected: 1\n\n\t- Glyph name: uni0456\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0457\tContours detected: 12\tExpected: 3\n\n\t- Glyph name: uni0458\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0459\tContours detected: 14\tExpected: 2\n\n\t- Glyph name: uni045A\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: uni045B\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni045C\tContours detected: 71\tExpected: 2\n\n\t- Glyph name: uni045D\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: uni045E\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: uni045F\tContours detected: 5\tExpected: 1 or 2\n\n\t- Glyph name: uni0462\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uni0463\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni046A\tContours detected: 20\tExpected: 2\n\n\t- Glyph name: uni046B\tContours detected: 20\tExpected: 2\n\n\t- Glyph name: uni0472\tContours detected: 9\tExpected: 3\n\n\t- Glyph name: uni0473\tContours detected: 13\tExpected: 3\n\n\t- Glyph name: uni0474\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: uni0475\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: uni0490\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni0491\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni0492\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni0493\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: uni0494\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: uni0495\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni0496\tContours detected: 23\tExpected: 1 or 2\n\n\t- Glyph name: uni0497\tContours detected: 24\tExpected: 1 or 2\n\n\t- Glyph name: uni0498\tContours detected: 8\tExpected: 1 or 2\n\n\t- Glyph name: uni0499\tContours detected: 6\tExpected: 1 or 2\n\n\t- Glyph name: uni049A\tContours detected: 11\tExpected: 1 or 2\n\n\t- Glyph name: uni049B\tContours detected: 12\tExpected: 1 or 2\n\n\t- Glyph name: uni049C\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uni049D\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: uni04A0\tContours detected: 12\tExpected: 1\n\n\t- Glyph name: uni04A1\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: uni04A2\tContours detected: 3\tExpected: 1 or 2\n\n\t- Glyph name: uni04A3\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: uni04A4\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: uni04A5\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni04AA\tContours detected: 3\tExpected: 1 or 2\n\n\t- Glyph name: uni04AB\tContours detected: 5\tExpected: 1 or 2\n\n\t- Glyph name: uni04B6\tContours detected: 3\tExpected: 1 or 2\n\n\t- Glyph name: uni04B7\tContours detected: 8\tExpected: 1 or 2\n\n\t- Glyph name: uni04B8\tContours detected: 15\tExpected: 1\n\n\t- Glyph name: uni04B9\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: uni04BA\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04BB\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04C0\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04C1\tContours detected: 29\tExpected: 2\n\n\t- Glyph name: uni04C2\tContours detected: 32\tExpected: 2\n\n\t- Glyph name: uni04CB\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: uni04CC\tContours detected: 7\tExpected: 1 or 2\n\n\t- Glyph name: uni04CF\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04D0\tContours detected: 16\tExpected: 3\n\n\t- Glyph name: uni04D1\tContours detected: 11\tExpected: 3\n\n\t- Glyph name: uni04D2\tContours detected: 22\tExpected: 4\n\n\t- Glyph name: uni04D3\tContours detected: 17\tExpected: 4\n\n\t- Glyph name: uni04D4\tContours detected: 13\tExpected: 2\n\n\t- Glyph name: uni04D5\tContours detected: 16\tExpected: 3\n\n\t- Glyph name: uni04D6\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: uni04D7\tContours detected: 12\tExpected: 3\n\n\t- Glyph name: uni04D8\tContours detected: 18\tExpected: 2\n\n\t- Glyph name: uni04D9\tContours detected: 15\tExpected: 2\n\n\t- Glyph name: uni04DC\tContours detected: 35\tExpected: 3\n\n\t- Glyph name: uni04DD\tContours detected: 38\tExpected: 3\n\n\t- Glyph name: uni04DE\tContours detected: 19\tExpected: 3\n\n\t- Glyph name: uni04DF\tContours detected: 17\tExpected: 3\n\n\t- Glyph name: uni04E2\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: uni04E3\tContours detected: 11\tExpected: 2\n\n\t- Glyph name: uni04E4\tContours detected: 18\tExpected: 3\n\n\t- Glyph name: uni04E5\tContours detected: 18\tExpected: 3\n\n\t- Glyph name: uni04E6\tContours detected: 16\tExpected: 4\n\n\t- Glyph name: uni04E7\tContours detected: 21\tExpected: 4\n\n\t- Glyph name: uni04E8\tContours detected: 7\tExpected: 3\n\n\t- Glyph name: uni04E9\tContours detected: 13\tExpected: 3\n\n\t- Glyph name: uni04EE\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: uni04EF\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: uni04F0\tContours detected: 15\tExpected: 3\n\n\t- Glyph name: uni04F1\tContours detected: 16\tExpected: 3\n\n\t- Glyph name: uni04F2\tContours detected: 12\tExpected: 3\n\n\t- Glyph name: uni04F3\tContours detected: 13\tExpected: 3\n\n\t- Glyph name: uni04F4\tContours detected: 13\tExpected: 3\n\n\t- Glyph name: uni04F5\tContours detected: 20\tExpected: 3\n\n\t- Glyph name: uni04F6\tContours detected: 3\tExpected: 1 or 2\n\n\t- Glyph name: uni04F7\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: uni04F8\tContours detected: 26\tExpected: 5\n\n\t- Glyph name: uni04F9\tContours detected: 27\tExpected: 5\n\n\t- Glyph name: uni051A\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: uni051B\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: uni051C\tContours detected: 13\tExpected: 1\n\n\t- Glyph name: uni051D\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: uni0524\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni0525\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: uni1E9E\tContours detected: 19\tExpected: 1\n\n\t- Glyph name: uni20AA\tContours detected: 24\tExpected: 2\n\n\t- Glyph name: uni20AE\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni20B4\tContours detected: 5\tExpected: 1 or 2\n\n\t- Glyph name: uni20B8\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni20B9\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: uni20BD\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: uni2116\tContours detected: 52\tExpected: 3 or 4\n\n\t- Glyph name: uni2206\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: uni2215\tContours detected: 5\tExpected: 1\n\n\t- Glyph name: uogonek\tContours detected: 7\tExpected: 1\n\n\t- Glyph name: uring\tContours detected: 10\tExpected: 3\n\n\t- Glyph name: utilde\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: v\tContours detected: 8\tExpected: 1\n\n\t- Glyph name: w\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: wacute\tContours detected: 17\tExpected: 2\n\n\t- Glyph name: wcircumflex\tContours detected: 18\tExpected: 2\n\n\t- Glyph name: wdieresis\tContours detected: 24\tExpected: 3\n\n\t- Glyph name: wgrave\tContours detected: 16\tExpected: 2\n\n\t- Glyph name: x\tContours detected: 9\tExpected: 1\n\n\t- Glyph name: y\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: yacute\tContours detected: 9\tExpected: 2\n\n\t- Glyph name: ycircumflex\tContours detected: 10\tExpected: 2\n\n\t- Glyph name: ydieresis\tContours detected: 16\tExpected: 3\n\n\t- Glyph name: yen\tContours detected: 9\tExpected: 1 or 2\n\n\t- Glyph name: ygrave\tContours detected: 8\tExpected: 2\n\n\t- Glyph name: z\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: zacute\tContours detected: 7\tExpected: 2\n\n\t- Glyph name: zcaron\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: zdotaccent\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: zero\tContours detected: 6\tExpected: 2 or 3\n [code: contour-count]", "status": "WARN", "traceback": null}], "rationale": "\n Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only\n be constructured in a handful of ways. This means a glyph's contour count\n will only differ slightly amongst different fonts, e.g a 'g' could either\n be 2 or 3 contours, depending on whether its double story or single story.\n\n However, a quotedbl should have 2 contours, unless the font belongs\n to a display family.\n\n This check currently does not cover variable fonts because there's plenty\n of alternative ways of constructing glyphs with multiple outlines for each\n feature in a VarFont. The expected contour count data for this check is\n currently optimized for the typical construction of glyphs in static fonts.\n ", "result": "WARN"}, {"description": "Does the font contain a soft hyphen?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n The 'Soft Hyphen' character (codepoint 0x00AD) is used to mark\n a hyphenation possibility within a word in the absence of or\n overriding dictionary hyphenation.\n\n It is sometimes designed empty with no width (such as a control character),\n sometimes the same as the traditional hyphen, sometimes double encoded with\n the hyphen.\n\n That being said, it is recommended to not include it in the font at all,\n because discretionary hyphenation should be handled at the level of the\n shaping engine, not the font. Also, even if present, the software would\n not display that character.\n\n More discussion at:\n https://typedrawers.com/discussion/2046/special-dash-things-softhyphen-horizontalbar\n ", "result": "PASS"}, {"description": "Does the font contain chws and vchw features?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cjk_font", "status": "SKIP", "traceback": null}], "rationale": "\n The W3C recommends the addition of chws and vchw features to CJK fonts\n to enhance the spacing of glyphs in environments which do not fully support\n JLREQ layout rules.\n\n The chws_tool utility (https://github.com/googlefonts/chws_tool) can be used\n to add these features automatically.\n ", "result": "SKIP"}, {"description": "Ensure component transforms do not perform scaling or rotation.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No glyphs had components with scaling or rotation", "status": "PASS", "traceback": null}], "rationale": "\n Some families have glyphs which have been constructed by using\n transformed components e.g the 'u' being constructed from a flipped 'n'.\n\n From a designers point of view, this sounds like a win (less work).\n However, such approaches can lead to rasterization issues, such as\n having the 'u' not sitting on the baseline at certain sizes after\n running the font through ttfautohint.\n\n Other issues are outlines that end up reversed when only one dimension\n is flipped while the other isn't.\n\n As of July 2019, Marc Foley observed that ttfautohint assigns cvt values\n to transformed glyphs as if they are not transformed and the result is\n they render very badly, and that vttLib does not support flipped components.\n\n When building the font with fontmake, the problem can be fixed by adding\n this to the command line:\n\n --filter DecomposeTransformedComponentsFilter\n ", "result": "PASS"}, {"description": "Ensure no GPOS7 lookups are present.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has no GPOS7 lookups", "status": "PASS", "traceback": null}], "rationale": "\n Versions of fonttools >=4.14.0 (19 August 2020) perform an optimisation on\n chained contextual lookups, expressing GSUB6 as GSUB5 and GPOS8 and GPOS7\n where possible (when there are no suffixes/prefixes for all rules in\n the lookup).\n\n However, makeotf has never generated these lookup types and they are rare\n in practice. Perhaps before of this, Mac's CoreText shaper does not correctly\n interpret GPOS7, meaning that these lookups will be ignored by the shaper,\n and fonts containing these lookups will have unintended positioning errors.\n\n To fix this warning, rebuild the font with a recent version of fonttools.\n ", "result": "PASS", "severity": 9}, {"description": "Ensure that the font can be rasterized by FreeType.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font can be rasterized by FreeType.", "status": "PASS", "traceback": null}], "rationale": "\n Malformed fonts can cause FreeType to crash.\n ", "result": "PASS", "severity": 10}, {"description": "Font has the proper sfntVersion value?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has the correct sfntVersion value.", "status": "PASS", "traceback": null}], "rationale": "\n OpenType fonts that contain TrueType outlines should use the value of 0x00010000\n for the sfntVersion. OpenType fonts containing CFF data (version 1 or 2) should\n use 0x4F54544F ('OTTO', when re-interpreted as a Tag) for sfntVersion.\n\n Fonts with the wrong sfntVersion value are rejected by FreeType.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/otff#table-directory\n ", "result": "PASS", "severity": 10}, {"description": "Space and non-breaking space have the same width?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Space and non-breaking space have the same width.", "status": "PASS", "traceback": null}], "rationale": "\n If the space and nbspace glyphs have different widths, then Google Workspace\n has problems with the font.\n\n The nbspace is used to replace the space character in multiple situations in\n documents; such as the space before punctuation in languages that do that. It\n avoids the punctuation to be separated from the last word and go to next line.\n\n This is automatic substitution by the text editors, not by fonts. It's also used\n by designers in text composition practice to create nicely shaped paragraphs.\n If the space and the nbspace are not the same width, it breaks the text\n composition of documents.\n ", "result": "PASS"}, {"description": "Detect any interpolation issues in the font.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n When creating a variable font, the designer must make sure that corresponding\n paths have the same start points across masters, as well as that corresponding\n component shapes are placed in the same order within a glyph across masters.\n If this is not done, the glyph will not interpolate correctly.\n\n Here we check for the presence of potential interpolation errors using the\n fontTools.varLib.interpolatable module.\n ", "result": "SKIP", "severity": 4}, {"description": "Check math signs have the same width.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The most common width is 538 among a set of 2 math glyphs.\nThe following math glyphs have a different width, though:\n\nWidth = 594:\nplus\n\nWidth = 563:\nequal\n\nWidth = 564:\nlogicalnot\n\nWidth = 576:\nplusminus\n\nWidth = 639:\nmultiply\n\nWidth = 517:\ndivide\n\nWidth = 642:\nminus\n\nWidth = 551:\napproxequal, notequal\n\nWidth = 556:\ngreaterequal, lessequal\n [code: width-outliers]", "status": "WARN", "traceback": null}], "rationale": "\n It is a common practice to have math signs sharing the same width\n (preferably the same width as tabular figures accross the entire font family).\n\n This probably comes from the will to avoid additional tabular math signs\n knowing that their design can easily share the same width.\n ", "result": "WARN"}, {"description": "Checking Vertical Metric Linegaps.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 sTypoLineGap and hhea lineGap are both 0.", "status": "PASS", "traceback": null}], "rationale": "\n The LineGap value is a space added to the line height created by the union\n of the (typo/hhea)Ascender and (typo/hhea)Descender. It is handled differently\n according to the environment.\n\n This leading value will be added above the text line in most desktop apps.\n It will be shared above and under in web browsers, and ignored in Windows\n if Use_Typo_Metrics is disabled.\n\n For better linespacing consistency across platforms,\n (typo/hhea)LineGap values must be 0.\n ", "result": "PASS"}, {"description": "Checking STAT table entries in static fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n Adobe feature syntax allows for the definition of a STAT table. Fonts built\n with a hand-coded STAT table in feature syntax may be built either as static\n or variable, but will end up with the same STAT table.\n\n This is a problem, because a STAT table which works on variable fonts\n will not be appropriate for static instances. The examples in the OpenType spec\n of non-variable fonts with a STAT table show that the table entries must be\n restricted to those entries which refer to the static font's position in\n the designspace. i.e. a Regular weight static should only have the following\n entry for the weight axis:\n\n \n \n \n \n\n However, if the STAT table intended for a variable font is compiled into a\n static, it will have many entries for this axis. In this case, Windows will\n read the first entry only, causing all instances to report themselves\n as \"Thin Condensed\".\n ", "result": "SKIP"}, {"description": "Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Lcaron, dcaron, lcaron, tcaron should NOT be composed with quoteright\n or quotesingle or comma or caron(comb). It should be composed with a\n distinctive glyph which doesn't look like an apostrophe.\n\n Source:\n https://ilovetypography.com/2009/01/24/on-diacritics/\n http://diacritics.typo.cz/index.php?id=5\n https://www.typotheque.com/articles/lcaron\n ", "result": "PASS"}], "key": ["", null, null], "result": {"INFO": 2, "PASS": 25, "SKIP": 7, "WARN": 2}}, {"checks": [{"description": "Is the CFF subr/gsubr call depth > 10?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff", "status": "SKIP", "traceback": null}], "rationale": "\n Per \"The Type 2 Charstring Format, Technical Note #5177\",\n the \"Subr nesting, stack limit\" is 10.\n ", "result": "SKIP"}, {"description": "Is the CFF2 subr/gsubr call depth > 10?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff2", "status": "SKIP", "traceback": null}], "rationale": "\n Per \"The CFF2 CharString Format\", the \"Subr nesting, stack limit\" is 10.\n ", "result": "SKIP"}, {"description": "Does the font use deprecated CFF operators or operations?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff", "status": "SKIP", "traceback": null}], "rationale": "\n The 'dotsection' operator and the use of 'endchar' to build accented characters\n from the Adobe Standard Encoding Character Set (\"seac\") are deprecated in CFF.\n Adobe recommends repairing any fonts that use these, especially endchar-as-seac,\n because a rendering issue was discovered in Microsoft Word with a font that\n makes use of this operation. The check treats that usage as a FAIL.\n There are no known ill effects of using dotsection, so that check is a WARN.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"SKIP": 3}}, {"checks": [{"description": "Fonts have equal unicode encodings?", "key": ["", "", []], "logs": [{"message": "Fonts have equal unicode encodings.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Make sure all font files have the same version value.", "key": ["", "", []], "logs": [{"message": "All font files have the same version.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking unitsPerEm value is reasonable.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Filtered: Google Fonts has a stricter policy which is enforced by com.google.fonts/check/unitsperem_strict", "status": "SKIP", "traceback": null}], "rationale": "\n According to the OpenType spec:\n\n The value of unitsPerEm at the head table must be a value\n between 16 and 16384. Any value in this range is valid.\n\n In fonts that have TrueType outlines, a power of 2 is recommended\n as this allows performance optimizations in some rasterizers.\n\n But 1000 is a commonly used value. And 2000 may become\n increasingly more common on Variable Fonts.\n ", "result": "SKIP"}, {"description": "Checking font version fields (head and name table).", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All font version fields match.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking head.macStyle value.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "head macStyle ITALIC bit is properly set.", "status": "PASS", "traceback": null}, {"message": "head macStyle BOLD bit is properly set.", "status": "PASS", "traceback": null}], "rationale": "\n The values of the flags on the macStyle entry on the 'head' OpenType table\n that describe whether a font is bold and/or italic must be coherent with the\n actual style of the font as inferred by its filename.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3, "SKIP": 1}}, {"checks": [{"description": "Fonts have consistent PANOSE proportion?", "key": ["", "", []], "logs": [{"message": "Fonts have consistent PANOSE proportion.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Fonts have consistent PANOSE family type?", "key": ["", "", []], "logs": [{"message": "Fonts have consistent PANOSE family type.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check that OS/2.fsSelection bold & italic settings are unique for each NameID1", "key": ["", "", []], "logs": [{"message": "The OS/2.fsSelection bold & italic settings were unique within each compatible family group.", "status": "PASS", "traceback": null}], "rationale": "\n Per the OpenType spec: name ID 1 'is used in combination with Font Subfamily\n name (name ID 2), and should be shared among at most four fonts that differ\n only in weight or style.\n\n This four-way distinction should also be reflected in the OS/2.fsSelection\n field, using bits 0 and 5.\n ", "result": "PASS"}, {"description": "Check if OS/2 xAvgCharWidth is correct.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 xAvgCharWidth value is correct.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check if OS/2 fsSelection matches head macStyle bold and italic bits.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The OS/2.fsSelection and head.macStyle bold and italic settings match.", "status": "PASS", "traceback": null}], "rationale": "\n The bold and italic bits in OS/2.fsSelection must match the bold and italic\n bits in head.macStyle per the OpenType spec.\n ", "result": "PASS"}, {"description": "Check code page character ranges", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "At least one code page is defined.", "status": "PASS", "traceback": null}], "rationale": "\n At least some programs (such as Word and Sublime Text) under Windows 7\n do not recognize fonts unless code page bits are properly set on the\n ulCodePageRange1 (and/or ulCodePageRange2) fields of the OS/2 table.\n\n More specifically, the fonts are selectable in the font menu, but whichever\n Windows API these applications use considers them unsuitable for any\n character set, so anything set in these fonts is rendered with Arial as a\n fallback font.\n\n This check currently does not identify which code pages should be set.\n Auto-detecting coverage is not trivial since the OpenType specification\n leaves the interpretation of whether a given code page is \"functional\"\n or not open to the font developer to decide.\n\n So here we simply detect as a FAIL when a given font has no code page\n declared at all.\n ", "result": "PASS"}, {"description": "Checking OS/2 achVendID against configuration.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Add the `vendor_id` key to a `fontbakery.yaml` file on your font project directory to enable this check.\nYou'll also need to use the `--configuration` flag when invoking fontbakery.", "status": "SKIP", "traceback": null}], "rationale": "\n When a font project's Vendor ID is specified explicitly on FontBakery's\n configuration file, all binaries must have a matching vendor identifier\n value in the OS/2 table.\n ", "result": "SKIP"}, {"description": "Checking OS/2 fsSelection value.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 fsSelection REGULAR bit is properly set.", "status": "PASS", "traceback": null}, {"message": "OS/2 fsSelection ITALIC bit is properly set.", "status": "PASS", "traceback": null}, {"message": "OS/2 fsSelection BOLD bit is properly set.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 7, "SKIP": 1}}, {"checks": [{"description": "Fonts have consistent underline thickness?", "key": ["", "", []], "logs": [{"message": "Fonts have consistent underline thickness.", "status": "PASS", "traceback": null}], "rationale": "\n Dave C Lemon (Adobe Type Team) recommends setting the underline thickness to be\n consistent across the family.\n\n If thicknesses are not family consistent, words set on the same line which have\n different styles look strange.\n ", "result": "PASS"}, {"description": "Font has correct post table version?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has an acceptable post format 2.0 table version.", "status": "PASS", "traceback": null}], "rationale": "\n Format 2.5 of the 'post' table was deprecated in OpenType 1.3 and\n should not be used.\n\n According to Thomas Phinney, the possible problem with post format 3\n is that under the right combination of circumstances, one can generate\n PDF from a font with a post format 3 table, and not have accurate backing\n store for any text that has non-default glyphs for a given codepoint.\n\n It will look fine but not be searchable. This can affect Latin text with\n high-end typography, and some complex script writing systems, especially\n with higher-quality fonts. Those circumstances generally involve creating\n a PDF by first printing a PostScript stream to disk, and then creating a\n PDF from that stream without reference to the original source document.\n There are some workflows where this applies,but these are not common\n use cases.\n\n Apple recommends against use of post format version 4 as \"no longer\n necessary and should be avoided\". Please see the Apple TrueType reference\n documentation for additional details.\n\n https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6post.html\n\n Acceptable post format versions are 2 and 3 for TTF and OTF CFF2 builds,\n and post format 3 for CFF builds.\n ", "result": "PASS"}, {"description": "Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Value of post.italicAngle is 0.0 with style=\"Regular\".", "status": "PASS", "traceback": null}], "rationale": "\n The 'post' table italicAngle property should be a reasonable amount, likely\n not more than 30\u00b0. Note that in the OpenType specification, the value is\n negative for a rightward lean.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/post\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "Verify that each group of fonts with the same nameID 1 has maximum of 4 fonts.", "key": ["", "", []], "logs": [{"message": "There were no more than 4 fonts per family name.", "status": "PASS", "traceback": null}], "rationale": "\n Per the OpenType spec:\n\n 'The Font Family name [...] should be shared among at most four fonts that\n differ only in weight or style [...]'\n ", "result": "PASS"}, {"description": "Verify that family names in the name table are consistent across all fonts in the family. Checks Typographic Family name (nameID 16) if present, otherwise uses Font Family name (nameID 1)", "key": ["", "", []], "logs": [{"message": "Font family names are consistent across the family.", "status": "PASS", "traceback": null}], "rationale": "\n Per the OpenType spec:\n * \"...many existing applications that use this pair of names assume that a\n Font Family name is shared by at most four fonts that form a font\n style-linking group\"\n * \"For extended typographic families that includes fonts other than the\n four basic styles(regular, italic, bold, bold italic), it is strongly\n recommended that name IDs 16 and 17 be used in fonts to create an\n extended, typographic grouping.\"\n * \"If name ID 16 is absent, then name ID 1 is considered to be the\n typographic family name.\"\n\n https://learn.microsoft.com/en-us/typography/opentype/spec/name\n\n Fonts within a font family all must have consistent names\n in the Typographic Family name (nameID 16)\n or Font Family name (nameID 1), depending on which it uses.\n\n Inconsistent font/typographic family names across fonts in a family\n can result in unexpected behaviors, such as broken style linking.\n ", "result": "PASS"}, {"description": "Check name table for empty records.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No empty name table records found.", "status": "PASS", "traceback": null}], "rationale": "\n Check the name table for empty records,\n as this can cause problems in Adobe apps.\n ", "result": "PASS"}, {"description": "Description strings in the name table must not contain copyright info.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Description strings in the name table do not contain any copyright string.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking correctness of monospaced metadata.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font is not monospaced and all related metadata look good. [code: good]", "status": "PASS", "traceback": null}], "rationale": "\n There are various metadata in the OpenType spec to specify if a font is\n monospaced or not. If the font is not truly monospaced, then no monospaced\n metadata should be set (as sometimes they mistakenly are...)\n\n Requirements for monospace fonts:\n\n * post.isFixedPitch - \"Set to 0 if the font is proportionally spaced,\n non-zero if the font is not proportionally spaced (monospaced)\"\n (https://www.microsoft.com/typography/otspec/post.htm)\n\n * hhea.advanceWidthMax must be correct, meaning no glyph's width value\n is greater. (https://www.microsoft.com/typography/otspec/hhea.htm)\n\n * OS/2.panose.bProportion must be set to 9 (monospace) on latin text fonts.\n\n * OS/2.panose.bSpacing must be set to 3 (monospace) on latin hand written\n or latin symbol fonts.\n\n * Spec says: \"The PANOSE definition contains ten digits each of which currently\n describes up to sixteen variations. Windows uses bFamilyType, bSerifStyle\n and bProportion in the font mapper to determine family type. It also uses\n bProportion to determine if the font is monospaced.\"\n (https://www.microsoft.com/typography/otspec/os2.htm#pan\n https://monotypecom-test.monotype.de/services/pan2)\n\n * OS/2.xAvgCharWidth must be set accurately.\n \"OS/2.xAvgCharWidth is used when rendering monospaced fonts,\n at least by Windows GDI\"\n (http://typedrawers.com/discussion/comment/15397/#Comment_15397)\n\n Also we should report an error for glyphs not of average width.\n\n\n Please also note:\n\n Thomas Phinney told us that a few years ago (as of December 2019), if you gave\n a font a monospace flag in Panose, Microsoft Word would ignore the actual\n advance widths and treat it as monospaced.\n\n Source: https://typedrawers.com/discussion/comment/45140/#Comment_45140\n ", "result": "PASS"}, {"description": "Does full font name begin with the font family name?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Full font name begins with the font family name.", "status": "PASS", "traceback": null}], "rationale": "\n The FULL_FONT_NAME entry in the \u2018name\u2019 table should start with the same string\n as the Family Name (FONT_FAMILY_NAME, TYPOGRAPHIC_FAMILY_NAME or\n WWS_FAMILY_NAME).\n\n If the Family Name is not included as the first part of the Full Font Name, and\n the user embeds the font in a document using a Microsoft Office app, the app\n will fail to render the font when it opens the document again.\n\n NOTE: Up until version 1.5, the OpenType spec included the following exception\n in the definition of Full Font Name:\n\n \"An exception to the [above] definition of Full font name is for Microsoft\n platform strings for CFF OpenType fonts: in this case, the Full font name\n string must be identical to the PostScript FontName in the CFF Name INDEX.\"\n\n https://docs.microsoft.com/en-us/typography/opentype/otspec150/name#name-ids\n ", "result": "PASS"}, {"description": "PostScript name follows OpenType specification requirements?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "PostScript name follows requirements. [code: psname-ok]", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font follows the family naming recommendations?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font follows the family naming recommendations.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "CFF table FontName must match name table ID 6 (PostScript name).", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff", "status": "SKIP", "traceback": null}], "rationale": "\n The PostScript name entries in the font's 'name' table should match\n the FontName string in the 'CFF ' table.\n\n The 'CFF ' table has a lot of information that is duplicated in other tables.\n This information should be consistent across tables, because there's\n no guarantee which table an app will get the data from.\n ", "result": "SKIP"}, {"description": "Name table ID 6 (PostScript name) must be consistent across platforms.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Entries in the \"name\" table for ID 6 (PostScript name) are consistent.", "status": "PASS", "traceback": null}], "rationale": "\n The PostScript name entries in the font's 'name' table should be\n consistent across platforms.\n\n This is the TTF/CFF2 equivalent of the CFF 'name/postscript_vs_cff' check.\n ", "result": "PASS"}, {"description": "Check name table IDs 1, 2, 16, 17 to conform to Italic style.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font is not Italic.", "status": "SKIP", "traceback": null}], "rationale": "\n This check ensures that several entries in the name table\n conform to the font's Upright or Italic style,\n namely IDs 1 & 2 as well as 16 & 17 if they're present.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"PASS": 9, "SKIP": 2}}, {"checks": [{"description": "Does the number of glyphs in the loca table match the maxp table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "'loca' table matches numGlyphs in 'maxp' table.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check hhea.caretSlopeRise and hhea.caretSlopeRun", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "hhea.caretSlopeRise and hhea.caretSlopeRun match with post.italicAngle.", "status": "PASS", "traceback": null}], "rationale": "\n Checks whether hhea.caretSlopeRise and hhea.caretSlopeRun\n match with post.italicAngle.\n\n For Upright fonts, you can set hhea.caretSlopeRise to 1\n and hhea.caretSlopeRun to 0.\n\n For Italic fonts, you can set hhea.caretSlopeRise to head.unitsPerEm\n and calculate hhea.caretSlopeRun like this:\n round(math.tan(\n math.radians(-1 * font[\"post\"].italicAngle)) * font[\"head\"].unitsPerEm)\n\n This check allows for a 0.1\u00b0 rounding difference between the Italic angle\n as calculated by the caret slope and post.italicAngle\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 2}}, {"checks": [{"description": "Does the font have a DSIG table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "ok", "status": "PASS", "traceback": null}], "rationale": "\n Microsoft Office 2013 and below products expect fonts to have a digital\n signature declared in a DSIG table in order to implement OpenType features.\n The EOL date for Microsoft Office 2013 products is 4/11/2023.\n This issue does not impact Microsoft Office 2016 and above products.\n\n As we approach the EOL date, it is now considered better to\n completely remove the table.\n\n But if you still want your font to support OpenType features on Office 2013,\n then you may find it handy to add a fake signature on a placeholder DSIG table\n by running one of the helper scripts provided at\n https://github.com/googlefonts/gftools\n\n Reference: https://github.com/fonttools/fontbakery/issues/1845\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Check glyphs in mark glyph class are non-spacing.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not has spacing glyphs in the GDEF mark glyph class.", "status": "PASS", "traceback": null}], "rationale": "\n Glyphs in the GDEF mark glyph class should be non-spacing.\n\n Spacing glyphs in the GDEF mark glyph class may have incorrect anchor\n positioning that was only intended for building composite glyphs during design.\n ", "result": "PASS"}, {"description": "Check mark characters are in GDEF mark glyph class.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not have mark characters not in the GDEF mark glyph class.", "status": "PASS", "traceback": null}], "rationale": "\n Mark characters should be in the GDEF mark glyph class.\n ", "result": "PASS"}, {"description": "Check GDEF mark glyph class doesn't have characters that are not marks.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not have non-mark characters in the GDEF mark glyph class.", "status": "PASS", "traceback": null}], "rationale": "\n Glyphs in the GDEF mark glyph class become non-spacing and may be repositioned\n if they have mark anchors.\n\n Only combining mark glyphs should be in that class. Any non-mark glyph\n must not be in that class, in particular spacing glyphs.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "Does GPOS table have kerning information? This check skips monospaced fonts as defined by post.isFixedPitch value", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "GPOS table check for kerning information passed.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Is there a usable \"kern\" table declared in the font?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not declare an optional \"kern\" table.", "status": "PASS", "traceback": null}], "rationale": "\n Even though all fonts should have their kerning implemented in the GPOS table,\n there may be kerning info at the kern table as well.\n\n Some applications such as MS PowerPoint require kerning info on the kern table.\n More specifically, they require a format 0 kern subtable from a kern table\n version 0 with only glyphs defined in the cmap table, which is the only one\n that Windows understands (and which is also the simplest and more limited\n of all the kern subtables).\n\n Google Fonts ingests fonts made for download and use on desktops, and does\n all web font optimizations in the serving pipeline (using libre libraries\n that anyone can replicate.)\n\n Ideally, TTFs intended for desktop users (and thus the ones intended for\n Google Fonts) should have both KERN and GPOS tables.\n\n Given all of the above, we currently treat kerning on a v0 kern table\n as a good-to-have (but optional) feature.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Is there any unused data at the end of the glyf table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There is no unused data at the end of the glyf table.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check for points out of bounds.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All glyph paths have coordinates within bounds!", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check glyphs do not have duplicate components which have the same x,y coordinates.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyphs do not contain duplicate components which have the same x,y coordinates.", "status": "PASS", "traceback": null}], "rationale": "\n There have been cases in which fonts had faulty double quote marks, with each\n of them containing two single quote marks as components with the same\n x, y coordinates which makes them visually look like single quote marks.\n\n This check ensures that glyphs do not contain duplicate components\n which have the same x,y coordinates.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "The variable font 'wght' (Weight) axis coordinate must be 400 on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wght_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wght' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght\n\n If a variable font has a 'wght' (Weight) axis, then the coordinate of\n its 'Regular' instance is required to be 400.\n ", "result": "SKIP"}, {"description": "The variable font 'wdth' (Width) axis coordinate must be 100 on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wdth_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wdth' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wdth\n\n If a variable font has a 'wdth' (Width) axis, then the coordinate of\n its 'Regular' instance is required to be 100.\n ", "result": "SKIP"}, {"description": "The variable font 'slnt' (Slant) axis coordinate must be zero on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_slnt_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'slnt' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_slnt\n\n If a variable font has a 'slnt' (Slant) axis, then the coordinate of\n its 'Regular' instance is required to be zero.\n ", "result": "SKIP"}, {"description": "The variable font 'ital' (Italic) axis coordinate must be zero on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_ital_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'ital' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_ital\n\n If a variable font has a 'ital' (Italic) axis, then the coordinate of\n its 'Regular' instance is required to be zero.\n ", "result": "SKIP"}, {"description": "The variable font 'opsz' (Optical Size) axis coordinate should be between 10 and 16 on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_opsz_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'opsz' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_opsz\n\n If a variable font has an 'opsz' (Optical Size) axis, then\n the coordinate of its 'Regular' instance is recommended to be\n a value in the range 10 to 16.\n ", "result": "SKIP"}, {"description": "The variable font 'wght' (Weight) axis coordinate must be 700 on the 'Bold' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wght_axis", "status": "SKIP", "traceback": null}], "rationale": "\n The Open-Type spec's registered\n design-variation tag 'wght' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght\n does not specify a required value for the 'Bold' instance of a variable font.\n\n But Dave Crossland suggested that we should enforce\n a required value of 700 in this case (NOTE: a distinction\n is made between \"no bold instance present\" vs \"bold instance is present\n but its wght coordinate is not == 700\").\n ", "result": "SKIP"}, {"description": "The variable font 'wght' (Weight) axis coordinate must be within spec range of 1 to 1000 on all instances.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wght_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wght' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght\n\n On the 'wght' (Weight) axis, the valid coordinate range is 1-1000.\n ", "result": "SKIP"}, {"description": "The variable font 'wdth' (Width) axis coordinate must strictly greater than zero.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wdth_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wdth' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wdth\n\n On the 'wdth' (Width) axis, the valid numeric range is strictly greater than\n zero.\n ", "result": "SKIP"}, {"description": "The variable font 'slnt' (Slant) axis coordinate specifies positive values in its range?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_slnt_axis", "status": "SKIP", "traceback": null}], "rationale": "\n The OpenType spec says at\n https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_slnt that:\n\n [...] the scale for the Slant axis is interpreted as the angle of slant\n in counter-clockwise degrees from upright. This means that a typical,\n right-leaning oblique design will have a negative slant value. This matches\n the scale used for the italicAngle field in the post table.\n ", "result": "SKIP"}, {"description": "Validates that the value of axisNameID used by each VariationAxisRecord is greater than 255 and less than 32768.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The axisNameID field provides a name ID that can be used to obtain strings\n from the 'name' table that can be used to refer to the axis in application\n user interfaces. The name ID must be greater than 255 and less than 32768.\n ", "result": "SKIP"}, {"description": "Validates that the value of subfamilyNameID used by each InstanceRecord is 2, 17, or greater than 255 and less than 32768.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The subfamilyNameID field provides a name ID that can be used to obtain\n strings from the 'name' table that can be treated as equivalent to name\n ID 17 (typographic subfamily) strings for the given instance. Values of\n 2 or 17 can be used; otherwise, values must be greater than 255 and less\n than 32768.\n ", "result": "SKIP"}, {"description": "Validates that the value of postScriptNameID used by each InstanceRecord is 6, 0xFFFF, or greater than 255 and less than 32768.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The postScriptNameID field provides a name ID that can be used to obtain\n strings from the 'name' table that can be treated as equivalent to name\n ID 6 (PostScript name) strings for the given instance. Values of 6 and\n 0xFFFF can be used; otherwise, values must be greater than 255 and less\n than 32768.\n ", "result": "SKIP"}, {"description": "Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9.1\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The default instance of a font is that instance for which the coordinate\n value of each axis is the defaultValue specified in the corresponding\n variation axis record. An instance record is not required for the default\n instance, though an instance record can be provided. When enumerating named\n instances, the default instance should be enumerated even if there is no\n corresponding instance record. If an instance record is included for the\n default instance (that is, an instance record has coordinates set to default\n values), then the nameID value should be set to either 2 or 17 or to a\n name ID with the same value as name ID 2 or 17. Also, if a postScriptNameID is\n included in instance records, and the postScriptNameID value should be set\n to 6 or to a name ID with the same value as name ID 6.\n ", "result": "SKIP"}, {"description": "Validates that all of the instance records in a given font have the same size.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n All of the instance records in a given font must be the same size, with\n all either including or omitting the postScriptNameID field. [...]\n If the value is 0xFFFF, then the value is ignored, and no PostScript name\n equivalent is provided for the instance.\n ", "result": "SKIP"}, {"description": "Validates that all of the instance records in a given font have distinct data.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n All of the instance records in a font should have distinct coordinates\n and distinct subfamilyNameID and postScriptName ID values. If two or more\n records share the same coordinates, the same nameID values or the same\n postScriptNameID values, then all but the first can be ignored.\n ", "result": "SKIP"}, {"description": "Validate foundry-defined design-variation axis tag names.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's syntactic requirements for\n foundry-defined design-variation axis tags available at\n https://learn.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg\n\n Foundry-defined tags must begin with an uppercase letter\n and must use only uppercase letters or digits.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"SKIP": 16}}, {"checks": [{"description": "Ensure VFs have 'ital' STAT axis.", "key": ["", "", []], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Check that related Upright and Italic VFs have a\n 'ital' axis in STAT table.\n ", "result": "PASS"}, {"description": "All fvar axes have a correspondent Axis Record on STAT table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the OpenType spec, there must be an Axis Record\n for every axis defined in the fvar table.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/stat#axis-records\n ", "result": "SKIP"}, {"description": "STAT table has Axis Value tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n According to the OpenType spec, in a variable font, it is strongly recommended\n that axis value tables be included for every element of typographic subfamily\n names for all of the named instances defined in the 'fvar' table.\n\n Axis value tables are particularly important for variable fonts, but can also\n be used in non-variable fonts. When used in non-variable fonts, axis value\n tables for particular values should be implemented consistently across fonts\n in the family.\n\n If present, Format 4 Axis Value tables are checked to ensure they have more than\n one AxisValueRecord (a strong recommendation from the OpenType spec).\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/stat#axis-value-tables\n ", "result": "SKIP"}, {"description": "Ensure 'ital' STAT axis is boolean value (derived from com.google.fonts/check/italic_axis_in_stat_is_boolean)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n Check that the value of the 'ital' STAT axis is boolean (either 0 or 1),\n and elided for the Upright and not elided for the Italic,\n and that the Upright is linked to the Italic.\n ", "result": "SKIP"}, {"description": "Ensure 'ital' STAT axis is last. (derived from com.google.fonts/check/italic_axis_last)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n Check that the 'ital' STAT axis is last in axis order.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"PASS": 1, "SKIP": 4}}, {"checks": [{"description": "Does the font have any invalid feature tags?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No invalid feature tags were found", "status": "PASS", "traceback": null}], "rationale": "\n Incorrect tags can be indications of typos, leftover debugging code or\n questionable approaches, or user error in the font editor. Such typos can\n cause features and language support to fail to work as intended.\n ", "result": "PASS", "severity": 8}, {"description": "Does the font have any invalid script tags?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No invalid script tags were found", "status": "PASS", "traceback": null}], "rationale": "\n Incorrect script tags can be indications of typos, leftover debugging code\n or questionable approaches, or user error in the font editor. Such typos can\n cause features and language support to fail to work as intended.\n ", "result": "PASS", "severity": 8}, {"description": "Does the font have any invalid language tags?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No invalid language tags were found", "status": "PASS", "traceback": null}], "rationale": "\n Incorrect language tags can be indications of typos, leftover debugging code\n or questionable approaches, or user error in the font editor. Such typos can\n cause features and language support to fail to work as intended.\n ", "result": "PASS", "severity": 8}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "Check that texts shape as per expectation", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Shaping test directory not defined in configuration file", "status": "SKIP", "traceback": null}], "rationale": "\n Fonts with complex layout rules can benefit from regression tests to ensure\n that the rules are behaving as designed. This checks runs a shaping test\n suite and compares expected shaping against actual shaping, reporting\n any differences.\n\n Shaping test suites should be written by the font engineer and referenced\n in the FontBakery configuration file. For more information about write\n shaping test files and how to configure FontBakery to read the shaping\n test suites, see https://simoncozens.github.io/tdd-for-otl/\n ", "result": "SKIP"}, {"description": "Check that no forbidden glyphs are found while shaping", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Shaping test directory not defined in configuration file", "status": "SKIP", "traceback": null}], "rationale": "\n Fonts with complex layout rules can benefit from regression tests to ensure\n that the rules are behaving as designed. This checks runs a shaping test\n suite and reports if any glyphs are generated in the shaping which should\n not be produced. (For example, .notdef glyphs, visible viramas, etc.)\n\n Shaping test suites should be written by the font engineer and referenced in\n the FontBakery configuration file. For more information about write shaping\n test files and how to configure FontBakery to read the shaping test suites,\n see https://simoncozens.github.io/tdd-for-otl/\n ", "result": "SKIP"}, {"description": "Check that no collisions are found while shaping", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Shaping test directory not defined in configuration file", "status": "SKIP", "traceback": null}], "rationale": "\n Fonts with complex layout rules can benefit from regression tests to ensure\n that the rules are behaving as designed. This checks runs a shaping test\n suite and reports instances where the glyphs collide in unexpected ways.\n\n Shaping test suites should be written by the font engineer and referenced\n in the FontBakery configuration file. For more information about write\n shaping test files and how to configure FontBakery to read the shaping\n test suites, see https://simoncozens.github.io/tdd-for-otl/\n ", "result": "SKIP"}, {"description": "Ensure dotted circle glyph is present and can attach marks.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No dotted circle glyph present [code: missing-dotted-circle]", "status": "WARN", "traceback": null}], "rationale": "\n The dotted circle character (U+25CC) is inserted by shaping engines before\n mark glyphs which do not have an associated base, especially in the context\n of broken syllabic clusters.\n\n For fonts containing combining marks, it is recommended that the dotted circle\n character be included so that these isolated marks can be displayed properly;\n for fonts supporting complex scripts, this should be considered mandatory.\n\n Additionally, when a dotted circle glyph is present, it should be able to\n display all marks correctly, meaning that it should contain anchors for all\n attaching marks.\n ", "result": "WARN", "severity": 3}, {"description": "Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodleshadow/RubikDoodleShadow-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The dot of soft dotted characters used in orthographies _must_ disappear in the following strings: \u012f\u0300 \u012f\u0301 \u012f\u0302 \u012f\u0303 \u012f\u0304 \u012f\u030c \u0456\u0301\n\nThe dot of soft dotted characters _should_ disappear in other cases, for example: i\u0326\u0312 j\u0326\u0312 \u012f\u0306 \u012f\u0307 \u012f\u0308 \u012f\u030a \u012f\u030b \u012f\u0312 \u012f\u0326\u0312 \u012f\u0327\u0312 \u012f\u0328\u0312 \u012f\u0335\u0300 \u012f\u0335\u0301 \u012f\u0335\u0302 \u012f\u0335\u0303 \u012f\u0335\u0304 \u012f\u0335\u0306 \u012f\u0335\u0307 \u012f\u0335\u0308 \u012f\u0335\u030a\n\nYour font fully covers the following languages that require the soft-dotted feature: Belarusian (Cyrl, 10,064,517 speakers), Dutch (Latn, 31,709,104 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Lithuanian (Latn, 2,357,094 speakers). \n\nYour font does *not* cover the following languages that require the soft-dotted feature: Ma\u2019di (Latn, 584,000 speakers), Ejagham (Latn, 120,000 speakers), Gulay (Latn, 250,478 speakers), Lugbara (Latn, 2,200,000 speakers), Aghem (Latn, 38,843 speakers), Avokaya (Latn, 100,000 speakers), Mango (Latn, 77,000 speakers), Kom (Latn, 360,685 speakers), Nateni (Latn, 100,000 speakers), Navajo (Latn, 166,319 speakers), Ebira (Latn, 2,200,000 speakers), Basaa (Latn, 332,940 speakers), Igbo (Latn, 27,823,640 speakers), Sar (Latn, 500,000 speakers), Dan (Latn, 1,099,244 speakers), Koonzime (Latn, 40,000 speakers). [code: soft-dotted]", "status": "WARN", "traceback": null}], "rationale": "\n An accent placed on characters with a \"soft dot\", like i or j, causes\n the dot to disappear.\n An explicit dot above can be added where required.\n See \"Diacritics on i and j\" in Section 7.1, \"Latin\" in The Unicode Standard.\n\n Characters with the Soft_Dotted property are listed in\n https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n\n See also:\n https://googlefonts.github.io/gf-guide/diacritics.html#soft-dotted-glyphs\n ", "result": "WARN", "severity": 3}], "key": ["", null, null], "result": {"SKIP": 3, "WARN": 2}}], "fontbakery_version": "0.10.4"} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikdoodleshadow/GoogleFonts.json b/docs/fontbakery-reports/rubikdoodleshadow/GoogleFonts.json new file mode 100644 index 0000000..fb78a0e --- /dev/null +++ b/docs/fontbakery-reports/rubikdoodleshadow/GoogleFonts.json @@ -0,0 +1,7 @@ +{ + "color": "green", + "label": "Google Fonts", + "logoSvg": "", + "message": "86%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikdoodleshadow/ShapingChecks.json b/docs/fontbakery-reports/rubikdoodleshadow/ShapingChecks.json new file mode 100644 index 0000000..1e5a389 --- /dev/null +++ b/docs/fontbakery-reports/rubikdoodleshadow/ShapingChecks.json @@ -0,0 +1,7 @@ +{ + "color": "red", + "label": "Shaping Checks", + "logoSvg": "", + "message": "0%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikdoodleshadow/Universal.json b/docs/fontbakery-reports/rubikdoodleshadow/Universal.json new file mode 100644 index 0000000..d84470f --- /dev/null +++ b/docs/fontbakery-reports/rubikdoodleshadow/Universal.json @@ -0,0 +1,7 @@ +{ + "color": "green", + "label": "Universal", + "logoSvg": "", + "message": "87%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikdoodleshadow/overall.json b/docs/fontbakery-reports/rubikdoodleshadow/overall.json new file mode 100644 index 0000000..f9c5a8e --- /dev/null +++ b/docs/fontbakery-reports/rubikdoodleshadow/overall.json @@ -0,0 +1,7 @@ +{ + "color": "green", + "label": "FontBakery QA", + "logoSvg": "", + "message": "88%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikdoodletriangles-report.html b/docs/fontbakery-reports/rubikdoodletriangles-report.html new file mode 100644 index 0000000..efcbf1f --- /dev/null +++ b/docs/fontbakery-reports/rubikdoodletriangles-report.html @@ -0,0 +1,2749 @@ + + + + + FontBakery Check Report + + + +
+ +
+ Fontbakery Technical Report +
+
+ +
+

If you think a check is flawed or have an idea for a check, please file an issue at https://github.com/fonttools/fontbakery/issues and remember to include a pointer to the repo and branch you're checking.

+

Summary

+ + + + + + + + + + + + + + + + + + + + + + + + + +
💥 ERROR🔥 FAIL⚠️ WARN⏩ SKIPℹ️ INFO✅ PASS
0411649159
0%2%6%35%5%88%
+ +

Note: The following loglevels were omitted in this report: SKIP, INFO, PASS, DEBUG

+ +

Meaning of check results:

+ +
    +
  • 💥 An ERROR is something wrong with FontBakery itself, possibly a bug. +
  • 🔥 A FAIL is a problem with the font that must be fixed. +
  • ⚠️ A WARN is something that you should consider addressing. +
  • ℹ️ An INFO result simply prints something useful. Typically stats. +
  • ✅ A PASS means the font looks good for the given checking routine. +
  • ⏩ And a SKIP happens when the check does not apply to the given font. +
+ +

If you get ERRORs, please help us improve the tool by reporting them at our + issue tracker.

+ +

(but other kinds of bug reports and/or feature requests + are also always welcome, of course!)

+ +

FontBakery version: 0.10.4

+ +

Section: Google Fonts

+🔥🔥🔥🔥⚠️⚠️⚠️⚠️⚠️⚠️⚠️⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩ℹ️ℹ️ℹ️ℹ️ℹ️ℹ️ℹ️ +

Checking OS/2 achVendID.

+
Check ID: com.google.fonts/check/vendor_id
+ +
⚠️ RubikDoodleTriangles-Regular.ttf
  • ⚠️ WARN

    OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx +[code: unknown]

    +
+

Check for codepoints not covered by METADATA subsets.

+
Check ID: com.google.fonts/check/metadata/unreachable_subsetting
+ +
⚠️ RubikDoodleTriangles-Regular.ttf
  • ⚠️ WARN

    The following codepoints supported by the font are not covered by +any subsets defined in the font's metadata file, and will never +be served. You can solve this by either manually adding additional +subset declarations to METADATA.pb, or by editing the glyphset +definitions.

    +
      +
    • U+02C7 CARON: try adding one of: yi, canadian-aboriginal, tifinagh
    • +
    • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
    • +
    • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
    • +
    • U+02DB OGONEK: try adding one of: yi, canadian-aboriginal
    • +
    • U+02DD DOUBLE ACUTE ACCENT: not included in any glyphset definition
    • +
    • U+0306 COMBINING BREVE: try adding one of: tifinagh, old-permic
    • +
    • U+030A COMBINING RING ABOVE: try adding syriac
    • +
    • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee
    • +
    • U+030C COMBINING CARON: try adding one of: tai-le, cherokee
    • +
    • U+0312 COMBINING TURNED COMMA ABOVE: not included in any glyphset definition
    • +
    • U+0326 COMBINING COMMA BELOW: not included in any glyphset definition
    • +
    • U+0327 COMBINING CEDILLA: not included in any glyphset definition
    • +
    • U+0328 COMBINING OGONEK: not included in any glyphset definition
    • +
    • U+0335 COMBINING SHORT STROKE OVERLAY: not included in any glyphset definition
    • +
    • U+0337 COMBINING SHORT SOLIDUS OVERLAY: not included in any glyphset definition
    • +
    • U+0338 COMBINING LONG SOLIDUS OVERLAY: not included in any glyphset definition
    • +
    • U+2021 DOUBLE DAGGER: try adding adlam
    • +
    • U+2030 PER MILLE SIGN: try adding adlam
    • +
    • U+2070 SUPERSCRIPT ZERO: not included in any glyphset definition
    • +
    • U+2075 SUPERSCRIPT FIVE: not included in any glyphset definition
    • +
    • U+2076 SUPERSCRIPT SIX: not included in any glyphset definition
    • +
    • U+2077 SUPERSCRIPT SEVEN: not included in any glyphset definition
    • +
    • U+2078 SUPERSCRIPT EIGHT: not included in any glyphset definition
    • +
    • U+2079 SUPERSCRIPT NINE: not included in any glyphset definition
    • +
    • U+207D SUPERSCRIPT LEFT PARENTHESIS: not included in any glyphset definition
    • +
    • U+207E SUPERSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition
    • +
    • U+2080 SUBSCRIPT ZERO: not included in any glyphset definition
    • +
    • U+2081 SUBSCRIPT ONE: not included in any glyphset definition
    • +
    • U+2082 SUBSCRIPT TWO: not included in any glyphset definition
    • +
    • U+2083 SUBSCRIPT THREE: not included in any glyphset definition
    • +
    • U+2084 SUBSCRIPT FOUR: not included in any glyphset definition
    • +
    • U+2085 SUBSCRIPT FIVE: not included in any glyphset definition
    • +
    • U+2086 SUBSCRIPT SIX: not included in any glyphset definition
    • +
    • U+2087 SUBSCRIPT SEVEN: not included in any glyphset definition
    • +
    • U+2088 SUBSCRIPT EIGHT: not included in any glyphset definition
    • +
    • U+2089 SUBSCRIPT NINE: not included in any glyphset definition
    • +
    • U+208D SUBSCRIPT LEFT PARENTHESIS: not included in any glyphset definition
    • +
    • U+208E SUBSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition
    • +
    • U+212E ESTIMATED SYMBOL: not included in any glyphset definition
    • +
    • U+2153 VULGAR FRACTION ONE THIRD: not included in any glyphset definition
    • +
    • U+2154 VULGAR FRACTION TWO THIRDS: not included in any glyphset definition
    • +
    • U+215B VULGAR FRACTION ONE EIGHTH: not included in any glyphset definition
    • +
    • U+215C VULGAR FRACTION THREE EIGHTHS: not included in any glyphset definition
    • +
    • U+215D VULGAR FRACTION FIVE EIGHTHS: not included in any glyphset definition
    • +
    • U+215E VULGAR FRACTION SEVEN EIGHTHS: not included in any glyphset definition
    • +
    • U+FB01 LATIN SMALL LIGATURE FI: not included in any glyphset definition
    • +
    • U+FB02 LATIN SMALL LIGATURE FL: not included in any glyphset definition
    • +
    +

    Or you can add the above codepoints to one of the subsets supported by the font: cyrillic, cyrillic-ext, hebrew, latin, latin-ext, math, menu, symbols [code: unreachable-subsetting]

    +
+

Ensure files are not too large.

+
Check ID: com.google.fonts/check/file_size
+ +
⚠️ RubikDoodleTriangles-Regular.ttf
  • ⚠️ WARN

    Font file is 1.3Mb; ideally it should be less than 1.0Mb [code: large-font]

    +
+

METADATA.pb: Check URL on copyright string is the same as in repository_url field.

+
Check ID: com.google.fonts/check/metadata/consistent_repo_urls
+ +
🔥 RubikDoodleTriangles-Regular.ttf
  • 🔥 FAIL

    Repository URL is https://github.com/NaN-xyz/Rubik-Filtered

    +

    But: OFL text has 'https:/' and HTML description has 'github.com/NaN-xyz/Glyph-Filters' +[code: mismatch]

    +
+

EXPERIMENTAL CHECK - Since 2023/Nov/02
Shapes languages in all GF glyphsets.

+
Check ID: com.google.fonts/check/glyphsets/shape_languages
+ +
🔥 RubikDoodleTriangles-Regular.ttf
  • 🔥 FAIL

    GF_Latin_Core glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| haw_Latn (Hawaiian) | Some base glyphs were missing: ʻ | +| ^ | Shaper produced a .notdef | +| mh_Latn (Marshallese) | Some base glyphs were missing: Ḷ, ḷ, Ṃ, ṃ, Ṇ, ṇ, Ọ, ọ | +| ^ | Some mark glyphs were missing: ◌̣ | +| ^ | Shaper produced a .notdef | +| scn_Latn (Sicilian) | Some base glyphs were missing: Ḍ, ḍ | +| ^ | Shaper produced a .notdef | +| teo_Latn (Teso) | Some base glyphs were missing: Ɔ, Ɛ, Ɨ, Ʉ, ɔ, ɛ, ɨ, ʉ, ᵃ, ᵉ, ᵋ, ᵒ, ᵓ, ᵘ, ᶤ, ᶶ, ⁱ | +| ^ | Shaper produced a .notdef |

    +

    [code: failed-language-shaping]

    +
  • 🔥 FAIL

    GF_Cyrillic_Plus glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| tg_Cyrl (Tajik) | Some base glyphs were missing: ҳ | +| ^ | Shaper produced a .notdef | +| uz_Cyrl (Uzbek (Cyrillic)) | Some base glyphs were missing: ҳ | +| ^ | Shaper produced a .notdef |

    +

    [code: failed-language-shaping]

    +
  • ⚠️ WARN

    GF_Latin_Core glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| lg_Latn (Ganda) | No variant glyphs were found for Eng | +| dyo_Latn (Jola-Fonyi) | No variant glyphs were found for Eng | +| ny_Latn (Nyanja) | No variant glyphs were found for Eng | +| wo_Latn (Wolof) | No variant glyphs were found for Eng |

    +

    [code: warning-language-shaping]

    +
  • ⚠️ WARN

    GF_Cyrillic_Plus glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| ku_Cyrl (Kurdish) | No exemplar glyphs were defined for language Kurdish |

    +

    [code: warning-language-shaping]

    +
+

Is there kerning info for non-ligated sequences?

+
Check ID: com.google.fonts/check/kerning_for_non_ligated_sequences
+ +
⚠️ RubikDoodleTriangles-Regular.ttf
  • ⚠️ WARN

    GPOS table lacks kerning info for the following non-ligated sequences:

    +
    - f + f
    +
    +- f + i
    +
    +- i + f
    +
    +- f + l
    +
    +- l + f
    +
    +- i + l [code: lacks-kern-info]
    +
    +
+

Combined length of family and style must not exceed 27 characters.

+
Check ID: com.google.fonts/check/name/family_and_style_max_length
+ +
⚠️ RubikDoodleTriangles-Regular.ttf
  • ⚠️ WARN

    The combined length of family and style exceeds 27 chars in the following 'WINDOWS' entries: +FONT_FAMILY_NAME = 'Rubik Doodle Triangles' / SUBFAMILY_NAME = 'Regular'

    +

    Please take a look at the conversation at https://github.com/fonttools/fontbakery/issues/2179 in order to understand the reasoning behind these name table records max-length criteria. [code: too-long]

    +
+

Check font follows the Google Fonts vertical metric schema

+
Check ID: com.google.fonts/check/vertical_metrics
+ +
🔥 RubikDoodleTriangles-Regular.ttf
  • 🔥 FAIL

    The sum of hhea.ascender + abs(hhea.descender) + hhea.lineGap is 1185 when it should be at least 1200 [code: bad-hhea-range]

    +
+

METADATA.pb: Designers are listed correctly on the Google Fonts catalog?

+
Check ID: com.google.fonts/check/metadata/designer_profiles
+ +
🔥 RubikDoodleTriangles-Regular.ttf
  • 🔥 FAIL

    Designer Luke Prowse still does not have an avatar image. Please provide one. [code: missing-avatar]

    +
+

On a family update, the DESCRIPTION.en_us.html file should ideally also be updated.

+
Check ID: com.google.fonts/check/description/family_update
+ +
⚠️ RubikDoodleTriangles-Regular.ttf
  • ⚠️ WARN

    The DESCRIPTION.en_us.html file in this family has not changed in comparison to the latest font release on the google/fonts github repo. +Please consider mentioning note-worthy improvements made to the family recently. [code: description-not-updated]

    +
+

Ensure fonts have ScriptLangTags declared on the 'meta' table.

+
Check ID: com.google.fonts/check/meta/script_lang_tags
+ +
⚠️ RubikDoodleTriangles-Regular.ttf
  • ⚠️ WARN

    This font file does not have a 'meta' table. [code: lacks-meta-table]

    +
+

Section: Universal

+⚠️⚠️⏩⏩⏩⏩⏩⏩⏩ℹ️ℹ️ +

Check if each glyph has the recommended amount of contours.

+
Check ID: com.google.fonts/check/contour_count
+ +
⚠️ RubikDoodleTriangles-Regular.ttf
  • ⚠️ WARN

    This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

    +

    The following glyphs do not have the recommended number of contours:

    +
    - Glyph name: exclam	Contours detected: 122	Expected: 2
    +
    +- Glyph name: quotedbl	Contours detected: 75	Expected: 2
    +
    +- Glyph name: numbersign	Contours detected: 182	Expected: 2
    +
    +- Glyph name: dollar	Contours detected: 224	Expected: 1, 3 or 5
    +
    +- Glyph name: percent	Contours detected: 208	Expected: 5
    +
    +- Glyph name: ampersand	Contours detected: 231	Expected: 1, 2 or 3
    +
    +- Glyph name: quotesingle	Contours detected: 34	Expected: 1
    +
    +- Glyph name: parenleft	Contours detected: 144	Expected: 1
    +
    +- Glyph name: parenright	Contours detected: 159	Expected: 1
    +
    +- Glyph name: asterisk	Contours detected: 72	Expected: 1 or 4
    +
    +- Glyph name: plus	Contours detected: 101	Expected: 1
    +
    +- Glyph name: comma	Contours detected: 37	Expected: 1
    +
    +- Glyph name: hyphen	Contours detected: 48	Expected: 1
    +
    +- Glyph name: period	Contours detected: 34	Expected: 1
    +
    +- Glyph name: slash	Contours detected: 112	Expected: 1
    +
    +- Glyph name: zero	Contours detected: 216	Expected: 2 or 3
    +
    +- Glyph name: one	Contours detected: 134	Expected: 1
    +
    +- Glyph name: two	Contours detected: 213	Expected: 1
    +
    +- Glyph name: three	Contours detected: 204	Expected: 1
    +
    +- Glyph name: four	Contours detected: 201	Expected: 1 or 2
    +
    +- Glyph name: five	Contours detected: 255	Expected: 1
    +
    +- Glyph name: six	Contours detected: 213	Expected: 1 or 2
    +
    +- Glyph name: seven	Contours detected: 159	Expected: 1
    +
    +- Glyph name: eight	Contours detected: 218	Expected: 3
    +
    +- Glyph name: nine	Contours detected: 197	Expected: 1 or 2
    +
    +- Glyph name: colon	Contours detected: 69	Expected: 2
    +
    +- Glyph name: semicolon	Contours detected: 74	Expected: 2
    +
    +- Glyph name: less	Contours detected: 108	Expected: 1
    +
    +- Glyph name: equal	Contours detected: 102	Expected: 2
    +
    +- Glyph name: greater	Contours detected: 106	Expected: 1
    +
    +- Glyph name: question	Contours detected: 156	Expected: 2
    +
    +- Glyph name: at	Contours detected: 263	Expected: 2
    +
    +- Glyph name: A	Contours detected: 218	Expected: 2
    +
    +- Glyph name: B	Contours detected: 249	Expected: 2 or 3
    +
    +- Glyph name: C	Contours detected: 203	Expected: 1
    +
    +- Glyph name: D	Contours detected: 239	Expected: 2
    +
    +- Glyph name: E	Contours detected: 230	Expected: 1
    +
    +- Glyph name: F	Contours detected: 217	Expected: 1
    +
    +- Glyph name: G	Contours detected: 243	Expected: 1
    +
    +- Glyph name: H	Contours detected: 243	Expected: 1
    +
    +- Glyph name: I	Contours detected: 111	Expected: 1
    +
    +- Glyph name: J	Contours detected: 193	Expected: 1
    +
    +- Glyph name: K	Contours detected: 256	Expected: 1 or 2
    +
    +- Glyph name: L	Contours detected: 156	Expected: 1
    +
    +- Glyph name: M	Contours detected: 255	Expected: 1
    +
    +- Glyph name: N	Contours detected: 239	Expected: 1
    +
    +- Glyph name: O	Contours detected: 223	Expected: 2
    +
    +- Glyph name: P	Contours detected: 196	Expected: 1 or 2
    +
    +- Glyph name: Q	Contours detected: 243	Expected: 2
    +
    +- Glyph name: R	Contours detected: 229	Expected: 1 or 2
    +
    +- Glyph name: S	Contours detected: 240	Expected: 1
    +
    +- Glyph name: T	Contours detected: 184	Expected: 1
    +
    +- Glyph name: U	Contours detected: 226	Expected: 1
    +
    +- Glyph name: V	Contours detected: 191	Expected: 1
    +
    +- Glyph name: W	Contours detected: 264	Expected: 1 or 2
    +
    +- Glyph name: X	Contours detected: 215	Expected: 1
    +
    +- Glyph name: Y	Contours detected: 166	Expected: 1
    +
    +- Glyph name: Z	Contours detected: 217	Expected: 1
    +
    +- Glyph name: bracketleft	Contours detected: 162	Expected: 1
    +
    +- Glyph name: backslash	Contours detected: 110	Expected: 1
    +
    +- Glyph name: bracketright	Contours detected: 181	Expected: 1
    +
    +- Glyph name: asciicircum	Contours detected: 34	Expected: 1
    +
    +- Glyph name: underscore	Contours detected: 93	Expected: 1
    +
    +- Glyph name: grave	Contours detected: 26	Expected: 1
    +
    +- Glyph name: a	Contours detected: 163	Expected: 2
    +
    +- Glyph name: b	Contours detected: 190	Expected: 2
    +
    +- Glyph name: c	Contours detected: 133	Expected: 1
    +
    +- Glyph name: d	Contours detected: 193	Expected: 2
    +
    +- Glyph name: e	Contours detected: 187	Expected: 2
    +
    +- Glyph name: f	Contours detected: 149	Expected: 1
    +
    +- Glyph name: g	Contours detected: 219	Expected: 2 or 3
    +
    +- Glyph name: h	Contours detected: 200	Expected: 1
    +
    +- Glyph name: i	Contours detected: 105	Expected: 2
    +
    +- Glyph name: j	Contours detected: 136	Expected: 2
    +
    +- Glyph name: k	Contours detected: 218	Expected: 1 or 2
    +
    +- Glyph name: l	Contours detected: 106	Expected: 1
    +
    +- Glyph name: m	Contours detected: 264	Expected: 1
    +
    +- Glyph name: n	Contours detected: 167	Expected: 1
    +
    +- Glyph name: o	Contours detected: 151	Expected: 2
    +
    +- Glyph name: p	Contours detected: 225	Expected: 2
    +
    +- Glyph name: q	Contours detected: 201	Expected: 2
    +
    +- Glyph name: r	Contours detected: 108	Expected: 1
    +
    +- Glyph name: s	Contours detected: 146	Expected: 1
    +
    +- Glyph name: t	Contours detected: 140	Expected: 1
    +
    +- Glyph name: u	Contours detected: 170	Expected: 1
    +
    +- Glyph name: v	Contours detected: 123	Expected: 1
    +
    +- Glyph name: w	Contours detected: 198	Expected: 1
    +
    +- Glyph name: x	Contours detected: 147	Expected: 1
    +
    +- Glyph name: y	Contours detected: 182	Expected: 1
    +
    +- Glyph name: z	Contours detected: 144	Expected: 1
    +
    +- Glyph name: braceleft	Contours detected: 150	Expected: 1
    +
    +- Glyph name: bar	Contours detected: 136	Expected: 1
    +
    +- Glyph name: braceright	Contours detected: 151	Expected: 1
    +
    +- Glyph name: asciitilde	Contours detected: 63	Expected: 1
    +
    +- Glyph name: exclamdown	Contours detected: 102	Expected: 2
    +
    +- Glyph name: cent	Contours detected: 155	Expected: 1 or 2
    +
    +- Glyph name: sterling	Contours detected: 235	Expected: 1 or 2
    +
    +- Glyph name: currency	Contours detected: 153	Expected: 2
    +
    +- Glyph name: yen	Contours detected: 198	Expected: 1 or 2
    +
    +- Glyph name: brokenbar	Contours detected: 87	Expected: 2
    +
    +- Glyph name: section	Contours detected: 229	Expected: 2
    +
    +- Glyph name: dieresis	Contours detected: 48	Expected: 2
    +
    +- Glyph name: copyright	Contours detected: 197	Expected: 3
    +
    +- Glyph name: ordfeminine	Contours detected: 50	Expected: 2 or 3
    +
    +- Glyph name: guillemotleft	Contours detected: 118	Expected: 2
    +
    +- Glyph name: logicalnot	Contours detected: 62	Expected: 1
    +
    +- Glyph name: registered	Contours detected: 197	Expected: 3 or 4
    +
    +- Glyph name: macron	Contours detected: 46	Expected: 1
    +
    +- Glyph name: degree	Contours detected: 71	Expected: 2
    +
    +- Glyph name: plusminus	Contours detected: 146	Expected: 1 or 2
    +
    +- Glyph name: uni00B2	Contours detected: 66	Expected: 1
    +
    +- Glyph name: uni00B3	Contours detected: 58	Expected: 1
    +
    +- Glyph name: acute	Contours detected: 32	Expected: 1
    +
    +- Glyph name: uni00B5	Contours detected: 205	Expected: 1
    +
    +- Glyph name: paragraph	Contours detected: 218	Expected: 1, 2 or 3
    +
    +- Glyph name: periodcentered	Contours detected: 41	Expected: 1
    +
    +- Glyph name: cedilla	Contours detected: 24	Expected: 1
    +
    +- Glyph name: uni00B9	Contours detected: 40	Expected: 1
    +
    +- Glyph name: ordmasculine	Contours detected: 48	Expected: 2 or 3
    +
    +- Glyph name: guillemotright	Contours detected: 122	Expected: 2
    +
    +- Glyph name: onequarter	Contours detected: 167	Expected: 3 or 4
    +
    +- Glyph name: onehalf	Contours detected: 179	Expected: 3
    +
    +- Glyph name: threequarters	Contours detected: 185	Expected: 3 or 4
    +
    +- Glyph name: questiondown	Contours detected: 156	Expected: 2
    +
    +- Glyph name: Agrave	Contours detected: 249	Expected: 3
    +
    +- Glyph name: Aacute	Contours detected: 249	Expected: 3
    +
    +- Glyph name: Acircumflex	Contours detected: 257	Expected: 3
    +
    +- Glyph name: Atilde	Contours detected: 262	Expected: 3
    +
    +- Glyph name: Adieresis	Contours detected: 259	Expected: 4
    +
    +- Glyph name: Aring	Contours detected: 241	Expected: 3 or 4
    +
    +- Glyph name: AE	Contours detected: 319	Expected: 2
    +
    +- Glyph name: Ccedilla	Contours detected: 224	Expected: 1 or 2
    +
    +- Glyph name: Egrave	Contours detected: 261	Expected: 2
    +
    +- Glyph name: Eacute	Contours detected: 261	Expected: 2
    +
    +- Glyph name: Ecircumflex	Contours detected: 269	Expected: 2
    +
    +- Glyph name: Edieresis	Contours detected: 271	Expected: 3
    +
    +- Glyph name: Igrave	Contours detected: 142	Expected: 2
    +
    +- Glyph name: Iacute	Contours detected: 142	Expected: 2
    +
    +- Glyph name: Icircumflex	Contours detected: 150	Expected: 2
    +
    +- Glyph name: Idieresis	Contours detected: 152	Expected: 3
    +
    +- Glyph name: Eth	Contours detected: 252	Expected: 2
    +
    +- Glyph name: Ntilde	Contours detected: 283	Expected: 2
    +
    +- Glyph name: Ograve	Contours detected: 254	Expected: 3
    +
    +- Glyph name: Oacute	Contours detected: 254	Expected: 3
    +
    +- Glyph name: Ocircumflex	Contours detected: 262	Expected: 3
    +
    +- Glyph name: Otilde	Contours detected: 267	Expected: 3
    +
    +- Glyph name: Odieresis	Contours detected: 264	Expected: 4
    +
    +- Glyph name: multiply	Contours detected: 98	Expected: 1
    +
    +- Glyph name: Oslash	Contours detected: 256	Expected: 2 or 3
    +
    +- Glyph name: Ugrave	Contours detected: 257	Expected: 2
    +
    +- Glyph name: Uacute	Contours detected: 257	Expected: 2
    +
    +- Glyph name: Ucircumflex	Contours detected: 265	Expected: 2
    +
    +- Glyph name: Udieresis	Contours detected: 267	Expected: 3
    +
    +- Glyph name: Yacute	Contours detected: 197	Expected: 2
    +
    +- Glyph name: Thorn	Contours detected: 197	Expected: 1 or 2
    +
    +- Glyph name: germandbls	Contours detected: 221	Expected: 1
    +
    +- Glyph name: agrave	Contours detected: 189	Expected: 3
    +
    +- Glyph name: aacute	Contours detected: 195	Expected: 3
    +
    +- Glyph name: acircumflex	Contours detected: 193	Expected: 3
    +
    +- Glyph name: atilde	Contours detected: 208	Expected: 3
    +
    +- Glyph name: adieresis	Contours detected: 211	Expected: 4
    +
    +- Glyph name: aring	Contours detected: 190	Expected: 4
    +
    +- Glyph name: ae	Contours detected: 243	Expected: 3
    +
    +- Glyph name: ccedilla	Contours detected: 148	Expected: 1 or 2
    +
    +- Glyph name: egrave	Contours detected: 213	Expected: 3
    +
    +- Glyph name: eacute	Contours detected: 219	Expected: 3
    +
    +- Glyph name: ecircumflex	Contours detected: 217	Expected: 3
    +
    +- Glyph name: edieresis	Contours detected: 235	Expected: 4
    +
    +- Glyph name: igrave	Contours detected: 105	Expected: 2
    +
    +- Glyph name: iacute	Contours detected: 111	Expected: 2
    +
    +- Glyph name: icircumflex	Contours detected: 109	Expected: 2
    +
    +- Glyph name: idieresis	Contours detected: 127	Expected: 3
    +
    +- Glyph name: eth	Contours detected: 199	Expected: 2
    +
    +- Glyph name: ntilde	Contours detected: 212	Expected: 2
    +
    +- Glyph name: ograve	Contours detected: 177	Expected: 3
    +
    +- Glyph name: oacute	Contours detected: 183	Expected: 3
    +
    +- Glyph name: ocircumflex	Contours detected: 181	Expected: 3
    +
    +- Glyph name: otilde	Contours detected: 196	Expected: 3
    +
    +- Glyph name: odieresis	Contours detected: 199	Expected: 4
    +
    +- Glyph name: divide	Contours detected: 98	Expected: 3
    +
    +- Glyph name: oslash	Contours detected: 180	Expected: 3
    +
    +- Glyph name: ugrave	Contours detected: 196	Expected: 2
    +
    +- Glyph name: uacute	Contours detected: 202	Expected: 2
    +
    +- Glyph name: ucircumflex	Contours detected: 200	Expected: 2
    +
    +- Glyph name: udieresis	Contours detected: 218	Expected: 3
    +
    +- Glyph name: yacute	Contours detected: 214	Expected: 2
    +
    +- Glyph name: thorn	Contours detected: 224	Expected: 2
    +
    +- Glyph name: ydieresis	Contours detected: 230	Expected: 3
    +
    +- Glyph name: Amacron	Contours detected: 260	Expected: 3
    +
    +- Glyph name: amacron	Contours detected: 209	Expected: 3
    +
    +- Glyph name: Abreve	Contours detected: 254	Expected: 3
    +
    +- Glyph name: abreve	Contours detected: 197	Expected: 3
    +
    +- Glyph name: Aogonek	Contours detected: 225	Expected: 2 or 3
    +
    +- Glyph name: aogonek	Contours detected: 173	Expected: 2
    +
    +- Glyph name: Cacute	Contours detected: 234	Expected: 2
    +
    +- Glyph name: cacute	Contours detected: 165	Expected: 2
    +
    +- Glyph name: Ccircumflex	Contours detected: 242	Expected: 2
    +
    +- Glyph name: ccircumflex	Contours detected: 163	Expected: 2
    +
    +- Glyph name: Cdotaccent	Contours detected: 231	Expected: 2
    +
    +- Glyph name: cdotaccent	Contours detected: 155	Expected: 2
    +
    +- Glyph name: Ccaron	Contours detected: 239	Expected: 2
    +
    +- Glyph name: ccaron	Contours detected: 170	Expected: 2
    +
    +- Glyph name: Dcaron	Contours detected: 275	Expected: 3
    +
    +- Glyph name: dcaron	Contours detected: 218	Expected: 3
    +
    +- Glyph name: Dcroat	Contours detected: 242	Expected: 2
    +
    +- Glyph name: dcroat	Contours detected: 212	Expected: 2
    +
    +- Glyph name: Emacron	Contours detected: 272	Expected: 2
    +
    +- Glyph name: emacron	Contours detected: 233	Expected: 3
    +
    +- Glyph name: Ebreve	Contours detected: 266	Expected: 2
    +
    +- Glyph name: ebreve	Contours detected: 221	Expected: 3
    +
    +- Glyph name: Edotaccent	Contours detected: 258	Expected: 2
    +
    +- Glyph name: edotaccent	Contours detected: 209	Expected: 3
    +
    +- Glyph name: Eogonek	Contours detected: 279	Expected: 1 or 2
    +
    +- Glyph name: eogonek	Contours detected: 179	Expected: 2
    +
    +- Glyph name: Ecaron	Contours detected: 266	Expected: 2
    +
    +- Glyph name: ecaron	Contours detected: 224	Expected: 3
    +
    +- Glyph name: Gcircumflex	Contours detected: 282	Expected: 2
    +
    +- Glyph name: gcircumflex	Contours detected: 249	Expected: 3 or 4
    +
    +- Glyph name: Gbreve	Contours detected: 279	Expected: 2
    +
    +- Glyph name: gbreve	Contours detected: 253	Expected: 3 or 4
    +
    +- Glyph name: Gdotaccent	Contours detected: 271	Expected: 2
    +
    +- Glyph name: gdotaccent	Contours detected: 241	Expected: 3 or 4
    +
    +- Glyph name: uni0122	Contours detected: 275	Expected: 2
    +
    +- Glyph name: uni0123	Contours detected: 253	Expected: 3 or 4
    +
    +- Glyph name: Hcircumflex	Contours detected: 282	Expected: 2
    +
    +- Glyph name: hcircumflex	Contours detected: 230	Expected: 2
    +
    +- Glyph name: Hbar	Contours detected: 257	Expected: 2
    +
    +- Glyph name: hbar	Contours detected: 214	Expected: 1
    +
    +- Glyph name: Itilde	Contours detected: 155	Expected: 2
    +
    +- Glyph name: itilde	Contours detected: 124	Expected: 2
    +
    +- Glyph name: Imacron	Contours detected: 153	Expected: 2
    +
    +- Glyph name: imacron	Contours detected: 125	Expected: 2
    +
    +- Glyph name: Ibreve	Contours detected: 147	Expected: 2
    +
    +- Glyph name: ibreve	Contours detected: 113	Expected: 2
    +
    +- Glyph name: Iogonek	Contours detected: 142	Expected: 1 or 2
    +
    +- Glyph name: iogonek	Contours detected: 128	Expected: 2 or 3
    +
    +- Glyph name: Idotaccent	Contours detected: 139	Expected: 2
    +
    +- Glyph name: dotlessi	Contours detected: 79	Expected: 1
    +
    +- Glyph name: IJ	Contours detected: 231	Expected: 1 or 2
    +
    +- Glyph name: ij	Contours detected: 241	Expected: 3 or 4
    +
    +- Glyph name: Jcircumflex	Contours detected: 232	Expected: 2
    +
    +- Glyph name: jcircumflex	Contours detected: 190	Expected: 2
    +
    +- Glyph name: uni0136	Contours detected: 288	Expected: 2 or 3
    +
    +- Glyph name: uni0137	Contours detected: 243	Expected: 2 or 3
    +
    +- Glyph name: kgreenlandic	Contours detected: 163	Expected: 1 or 2
    +
    +- Glyph name: Lacute	Contours detected: 187	Expected: 2
    +
    +- Glyph name: lacute	Contours detected: 138	Expected: 2
    +
    +- Glyph name: uni013B	Contours detected: 188	Expected: 2
    +
    +- Glyph name: uni013C	Contours detected: 131	Expected: 2
    +
    +- Glyph name: Lcaron	Contours detected: 181	Expected: 2
    +
    +- Glyph name: lcaron	Contours detected: 131	Expected: 2
    +
    +- Glyph name: Ldot	Contours detected: 179	Expected: 2
    +
    +- Glyph name: ldot	Contours detected: 131	Expected: 2
    +
    +- Glyph name: Lslash	Contours detected: 195	Expected: 1
    +
    +- Glyph name: lslash	Contours detected: 112	Expected: 1
    +
    +- Glyph name: Nacute	Contours detected: 270	Expected: 2
    +
    +- Glyph name: nacute	Contours detected: 199	Expected: 2
    +
    +- Glyph name: uni0145	Contours detected: 271	Expected: 2
    +
    +- Glyph name: uni0146	Contours detected: 192	Expected: 2
    +
    +- Glyph name: Ncaron	Contours detected: 275	Expected: 2
    +
    +- Glyph name: ncaron	Contours detected: 204	Expected: 2
    +
    +- Glyph name: napostrophe	Contours detected: 210	Expected: 2
    +
    +- Glyph name: Eng	Contours detected: 283	Expected: 1
    +
    +- Glyph name: eng	Contours detected: 212	Expected: 1
    +
    +- Glyph name: Omacron	Contours detected: 265	Expected: 3
    +
    +- Glyph name: omacron	Contours detected: 197	Expected: 3
    +
    +- Glyph name: Obreve	Contours detected: 259	Expected: 3
    +
    +- Glyph name: obreve	Contours detected: 185	Expected: 3
    +
    +- Glyph name: Ohungarumlaut	Contours detected: 271	Expected: 4
    +
    +- Glyph name: ohungarumlaut	Contours detected: 195	Expected: 4
    +
    +- Glyph name: OE	Contours detected: 331	Expected: 2
    +
    +- Glyph name: oe	Contours detected: 265	Expected: 3
    +
    +- Glyph name: Racute	Contours detected: 260	Expected: 3
    +
    +- Glyph name: racute	Contours detected: 140	Expected: 2
    +
    +- Glyph name: uni0156	Contours detected: 261	Expected: 3
    +
    +- Glyph name: uni0157	Contours detected: 133	Expected: 2
    +
    +- Glyph name: Rcaron	Contours detected: 265	Expected: 3
    +
    +- Glyph name: rcaron	Contours detected: 145	Expected: 2
    +
    +- Glyph name: Sacute	Contours detected: 271	Expected: 2
    +
    +- Glyph name: sacute	Contours detected: 178	Expected: 2
    +
    +- Glyph name: Scircumflex	Contours detected: 279	Expected: 2
    +
    +- Glyph name: scircumflex	Contours detected: 176	Expected: 2
    +
    +- Glyph name: Scedilla	Contours detected: 259	Expected: 1 or 2
    +
    +- Glyph name: scedilla	Contours detected: 170	Expected: 1 or 2
    +
    +- Glyph name: Scaron	Contours detected: 276	Expected: 2
    +
    +- Glyph name: scaron	Contours detected: 183	Expected: 2
    +
    +- Glyph name: Tcaron	Contours detected: 220	Expected: 2
    +
    +- Glyph name: tcaron	Contours detected: 165	Expected: 2
    +
    +- Glyph name: Tbar	Contours detected: 186	Expected: 1
    +
    +- Glyph name: tbar	Contours detected: 165	Expected: 1
    +
    +- Glyph name: Utilde	Contours detected: 270	Expected: 2
    +
    +- Glyph name: utilde	Contours detected: 215	Expected: 2
    +
    +- Glyph name: Umacron	Contours detected: 268	Expected: 2
    +
    +- Glyph name: umacron	Contours detected: 216	Expected: 2
    +
    +- Glyph name: Ubreve	Contours detected: 262	Expected: 2
    +
    +- Glyph name: ubreve	Contours detected: 204	Expected: 2
    +
    +- Glyph name: Uring	Contours detected: 249	Expected: 3
    +
    +- Glyph name: uring	Contours detected: 197	Expected: 3
    +
    +- Glyph name: Uhungarumlaut	Contours detected: 274	Expected: 3
    +
    +- Glyph name: uhungarumlaut	Contours detected: 214	Expected: 3
    +
    +- Glyph name: Uogonek	Contours detected: 241	Expected: 1
    +
    +- Glyph name: uogonek	Contours detected: 193	Expected: 1
    +
    +- Glyph name: Wcircumflex	Contours detected: 303	Expected: 2
    +
    +- Glyph name: wcircumflex	Contours detected: 228	Expected: 2
    +
    +- Glyph name: Ycircumflex	Contours detected: 205	Expected: 2
    +
    +- Glyph name: ycircumflex	Contours detected: 212	Expected: 2
    +
    +- Glyph name: Ydieresis	Contours detected: 207	Expected: 3
    +
    +- Glyph name: Zacute	Contours detected: 248	Expected: 2
    +
    +- Glyph name: zacute	Contours detected: 176	Expected: 2
    +
    +- Glyph name: Zdotaccent	Contours detected: 245	Expected: 2
    +
    +- Glyph name: zdotaccent	Contours detected: 166	Expected: 2
    +
    +- Glyph name: Zcaron	Contours detected: 253	Expected: 2
    +
    +- Glyph name: zcaron	Contours detected: 181	Expected: 2
    +
    +- Glyph name: longs	Contours detected: 132	Expected: 1
    +
    +- Glyph name: florin	Contours detected: 185	Expected: 1
    +
    +- Glyph name: AEacute	Contours detected: 350	Expected: 3
    +
    +- Glyph name: aeacute	Contours detected: 275	Expected: 4
    +
    +- Glyph name: Oslashacute	Contours detected: 287	Expected: 4
    +
    +- Glyph name: oslashacute	Contours detected: 212	Expected: 4
    +
    +- Glyph name: uni0218	Contours detected: 272	Expected: 2
    +
    +- Glyph name: uni0219	Contours detected: 171	Expected: 2
    +
    +- Glyph name: uni021A	Contours detected: 216	Expected: 2
    +
    +- Glyph name: uni021B	Contours detected: 165	Expected: 2
    +
    +- Glyph name: uni0237	Contours detected: 160	Expected: 1
    +
    +- Glyph name: uni02BC	Contours detected: 25	Expected: 1
    +
    +- Glyph name: circumflex	Contours detected: 30	Expected: 1
    +
    +- Glyph name: caron	Contours detected: 37	Expected: 1
    +
    +- Glyph name: breve	Contours detected: 34	Expected: 1
    +
    +- Glyph name: dotaccent	Contours detected: 22	Expected: 1
    +
    +- Glyph name: ring	Contours detected: 27	Expected: 2
    +
    +- Glyph name: ogonek	Contours detected: 38	Expected: 1
    +
    +- Glyph name: tilde	Contours detected: 45	Expected: 1
    +
    +- Glyph name: hungarumlaut	Contours detected: 44	Expected: 2
    +
    +- Glyph name: gravecomb	Contours detected: 26	Expected: 1
    +
    +- Glyph name: acutecomb	Contours detected: 32	Expected: 1
    +
    +- Glyph name: uni0302	Contours detected: 30	Expected: 1
    +
    +- Glyph name: tildecomb	Contours detected: 45	Expected: 1
    +
    +- Glyph name: uni0304	Contours detected: 46	Expected: 1
    +
    +- Glyph name: uni0306	Contours detected: 34	Expected: 1
    +
    +- Glyph name: uni0307	Contours detected: 22	Expected: 1
    +
    +- Glyph name: uni0308	Contours detected: 48	Expected: 2
    +
    +- Glyph name: uni030A	Contours detected: 27	Expected: 2
    +
    +- Glyph name: uni030B	Contours detected: 44	Expected: 2
    +
    +- Glyph name: uni030C	Contours detected: 37	Expected: 1
    +
    +- Glyph name: uni0312	Contours detected: 34	Expected: 1
    +
    +- Glyph name: uni0326	Contours detected: 25	Expected: 1
    +
    +- Glyph name: uni0327	Contours detected: 24	Expected: 1
    +
    +- Glyph name: uni0328	Contours detected: 38	Expected: 1
    +
    +- Glyph name: uni0335	Contours detected: 37	Expected: 1
    +
    +- Glyph name: uni0337	Contours detected: 48	Expected: 1
    +
    +- Glyph name: uni0338	Contours detected: 53	Expected: 1
    +
    +- Glyph name: uni0400	Contours detected: 261	Expected: 2
    +
    +- Glyph name: uni0401	Contours detected: 278	Expected: 3
    +
    +- Glyph name: uni0402	Contours detected: 257	Expected: 1
    +
    +- Glyph name: uni0403	Contours detected: 184	Expected: 2
    +
    +- Glyph name: uni0404	Contours detected: 208	Expected: 1
    +
    +- Glyph name: uni0405	Contours detected: 240	Expected: 1
    +
    +- Glyph name: uni0406	Contours detected: 111	Expected: 1
    +
    +- Glyph name: uni0407	Contours detected: 159	Expected: 3
    +
    +- Glyph name: uni0408	Contours detected: 193	Expected: 1
    +
    +- Glyph name: uni0409	Contours detected: 325	Expected: 2
    +
    +- Glyph name: uni040A	Contours detected: 366	Expected: 2
    +
    +- Glyph name: uni040B	Contours detected: 235	Expected: 1
    +
    +- Glyph name: uni040C	Contours detected: 255	Expected: 2
    +
    +- Glyph name: uni040D	Contours detected: 289	Expected: 2
    +
    +- Glyph name: uni040E	Contours detected: 218	Expected: 2
    +
    +- Glyph name: uni040F	Contours detected: 246	Expected: 1
    +
    +- Glyph name: uni0410	Contours detected: 218	Expected: 2
    +
    +- Glyph name: uni0411	Contours detected: 234	Expected: 2
    +
    +- Glyph name: uni0412	Contours detected: 249	Expected: 3
    +
    +- Glyph name: uni0413	Contours detected: 153	Expected: 1
    +
    +- Glyph name: uni0414	Contours detected: 309	Expected: 2
    +
    +- Glyph name: uni0415	Contours detected: 230	Expected: 1
    +
    +- Glyph name: uni0416	Contours detected: 347	Expected: 1
    +
    +- Glyph name: uni0417	Contours detected: 221	Expected: 1
    +
    +- Glyph name: uni0418	Contours detected: 258	Expected: 1
    +
    +- Glyph name: uni0419	Contours detected: 294	Expected: 2
    +
    +- Glyph name: uni041A	Contours detected: 224	Expected: 1
    +
    +- Glyph name: uni041B	Contours detected: 267	Expected: 1
    +
    +- Glyph name: uni041C	Contours detected: 255	Expected: 1
    +
    +- Glyph name: uni041D	Contours detected: 243	Expected: 1
    +
    +- Glyph name: uni041E	Contours detected: 223	Expected: 2
    +
    +- Glyph name: uni041F	Contours detected: 231	Expected: 1
    +
    +- Glyph name: uni0420	Contours detected: 196	Expected: 1 or 2
    +
    +- Glyph name: uni0421	Contours detected: 203	Expected: 1
    +
    +- Glyph name: uni0422	Contours detected: 184	Expected: 1
    +
    +- Glyph name: uni0423	Contours detected: 182	Expected: 1
    +
    +- Glyph name: uni0424	Contours detected: 298	Expected: 3
    +
    +- Glyph name: uni0425	Contours detected: 215	Expected: 1
    +
    +- Glyph name: uni0426	Contours detected: 263	Expected: 1
    +
    +- Glyph name: uni0427	Contours detected: 203	Expected: 1
    +
    +- Glyph name: uni0428	Contours detected: 338	Expected: 1
    +
    +- Glyph name: uni0429	Contours detected: 367	Expected: 1
    +
    +- Glyph name: uni042A	Contours detected: 210	Expected: 2
    +
    +- Glyph name: uni042B	Contours detected: 308	Expected: 3
    +
    +- Glyph name: uni042C	Contours detected: 211	Expected: 2
    +
    +- Glyph name: uni042D	Contours detected: 216	Expected: 1
    +
    +- Glyph name: uni042E	Contours detected: 346	Expected: 2
    +
    +- Glyph name: uni042F	Contours detected: 232	Expected: 2
    +
    +- Glyph name: uni0430	Contours detected: 163	Expected: 2
    +
    +- Glyph name: uni0431	Contours detected: 206	Expected: 2
    +
    +- Glyph name: uni0432	Contours detected: 193	Expected: 3
    +
    +- Glyph name: uni0433	Contours detected: 98	Expected: 1
    +
    +- Glyph name: uni0434	Contours detected: 237	Expected: 2
    +
    +- Glyph name: uni0435	Contours detected: 187	Expected: 2
    +
    +- Glyph name: uni0436	Contours detected: 242	Expected: 1
    +
    +- Glyph name: uni0437	Contours detected: 143	Expected: 1
    +
    +- Glyph name: uni0438	Contours detected: 181	Expected: 1
    +
    +- Glyph name: uni0439	Contours detected: 219	Expected: 2
    +
    +- Glyph name: uni043A	Contours detected: 164	Expected: 1
    +
    +- Glyph name: uni043B	Contours detected: 155	Expected: 1
    +
    +- Glyph name: uni043C	Contours detected: 183	Expected: 1
    +
    +- Glyph name: uni043D	Contours detected: 167	Expected: 1
    +
    +- Glyph name: uni043E	Contours detected: 151	Expected: 2
    +
    +- Glyph name: uni043F	Contours detected: 160	Expected: 1
    +
    +- Glyph name: uni0440	Contours detected: 225	Expected: 2
    +
    +- Glyph name: uni0441	Contours detected: 133	Expected: 1
    +
    +- Glyph name: uni0442	Contours detected: 119	Expected: 1
    +
    +- Glyph name: uni0443	Contours detected: 170	Expected: 1
    +
    +- Glyph name: uni0444	Contours detected: 275	Expected: 3
    +
    +- Glyph name: uni0445	Contours detected: 147	Expected: 1
    +
    +- Glyph name: uni0446	Contours detected: 221	Expected: 1
    +
    +- Glyph name: uni0447	Contours detected: 148	Expected: 1
    +
    +- Glyph name: uni0448	Contours detected: 225	Expected: 1
    +
    +- Glyph name: uni0449	Contours detected: 240	Expected: 1
    +
    +- Glyph name: uni044A	Contours detected: 152	Expected: 2
    +
    +- Glyph name: uni044B	Contours detected: 204	Expected: 3
    +
    +- Glyph name: uni044C	Contours detected: 132	Expected: 2
    +
    +- Glyph name: uni044D	Contours detected: 150	Expected: 1
    +
    +- Glyph name: uni044E	Contours detected: 229	Expected: 2
    +
    +- Glyph name: uni044F	Contours detected: 158	Expected: 2
    +
    +- Glyph name: uni0450	Contours detected: 213	Expected: 3
    +
    +- Glyph name: uni0451	Contours detected: 235	Expected: 4
    +
    +- Glyph name: uni0452	Contours detected: 235	Expected: 1
    +
    +- Glyph name: uni0453	Contours detected: 130	Expected: 2
    +
    +- Glyph name: uni0454	Contours detected: 135	Expected: 1
    +
    +- Glyph name: uni0455	Contours detected: 146	Expected: 1
    +
    +- Glyph name: uni0456	Contours detected: 105	Expected: 2
    +
    +- Glyph name: uni0457	Contours detected: 127	Expected: 3
    +
    +- Glyph name: uni0458	Contours detected: 136	Expected: 2
    +
    +- Glyph name: uni0459	Contours detected: 211	Expected: 2
    +
    +- Glyph name: uni045A	Contours detected: 220	Expected: 2
    +
    +- Glyph name: uni045B	Contours detected: 213	Expected: 1
    +
    +- Glyph name: uni045C	Contours detected: 196	Expected: 2
    +
    +- Glyph name: uni045D	Contours detected: 207	Expected: 2
    +
    +- Glyph name: uni045E	Contours detected: 208	Expected: 2
    +
    +- Glyph name: uni045F	Contours detected: 184	Expected: 1 or 2
    +
    +- Glyph name: uni0462	Contours detected: 211	Expected: 2
    +
    +- Glyph name: uni0463	Contours detected: 184	Expected: 2
    +
    +- Glyph name: uni046A	Contours detected: 320	Expected: 2
    +
    +- Glyph name: uni046B	Contours detected: 246	Expected: 2
    +
    +- Glyph name: uni0472	Contours detected: 234	Expected: 3
    +
    +- Glyph name: uni0473	Contours detected: 154	Expected: 3
    +
    +- Glyph name: uni0474	Contours detected: 209	Expected: 1
    +
    +- Glyph name: uni0475	Contours detected: 121	Expected: 1
    +
    +- Glyph name: uni0490	Contours detected: 170	Expected: 1
    +
    +- Glyph name: uni0491	Contours detected: 118	Expected: 1
    +
    +- Glyph name: uni0492	Contours detected: 166	Expected: 1
    +
    +- Glyph name: uni0493	Contours detected: 111	Expected: 1
    +
    +- Glyph name: uni0494	Contours detected: 234	Expected: 1
    +
    +- Glyph name: uni0495	Contours detected: 172	Expected: 1
    +
    +- Glyph name: uni0496	Contours detected: 372	Expected: 1 or 2
    +
    +- Glyph name: uni0497	Contours detected: 273	Expected: 1 or 2
    +
    +- Glyph name: uni0498	Contours detected: 220	Expected: 1 or 2
    +
    +- Glyph name: uni0499	Contours detected: 151	Expected: 1 or 2
    +
    +- Glyph name: uni049A	Contours detected: 261	Expected: 1 or 2
    +
    +- Glyph name: uni049B	Contours detected: 192	Expected: 1 or 2
    +
    +- Glyph name: uni049C	Contours detected: 249	Expected: 1
    +
    +- Glyph name: uni049D	Contours detected: 186	Expected: 1
    +
    +- Glyph name: uni04A0	Contours detected: 245	Expected: 1
    +
    +- Glyph name: uni04A1	Contours detected: 180	Expected: 1
    +
    +- Glyph name: uni04A2	Contours detected: 310	Expected: 1 or 2
    +
    +- Glyph name: uni04A3	Contours detected: 222	Expected: 1 or 2
    +
    +- Glyph name: uni04A4	Contours detected: 266	Expected: 1
    +
    +- Glyph name: uni04A5	Contours detected: 206	Expected: 1
    +
    +- Glyph name: uni04AA	Contours detected: 224	Expected: 1 or 2
    +
    +- Glyph name: uni04AB	Contours detected: 157	Expected: 1 or 2
    +
    +- Glyph name: Ustraitcy	Contours detected: 166	Expected: 1
    +
    +- Glyph name: ustraitcy	Contours detected: 172	Expected: 1
    +
    +- Glyph name: Ustraitstrokecy	Contours detected: 189	Expected: 1
    +
    +- Glyph name: ustraitstrokecy	Contours detected: 159	Expected: 1
    +
    +- Glyph name: uni04B6	Contours detected: 258	Expected: 1 or 2
    +
    +- Glyph name: uni04B7	Contours detected: 178	Expected: 1 or 2
    +
    +- Glyph name: uni04B8	Contours detected: 204	Expected: 1
    +
    +- Glyph name: uni04B9	Contours detected: 160	Expected: 1
    +
    +- Glyph name: uni04BA	Contours detected: 221	Expected: 1
    +
    +- Glyph name: uni04BB	Contours detected: 200	Expected: 1
    +
    +- Glyph name: uni04C0	Contours detected: 111	Expected: 1
    +
    +- Glyph name: uni04C1	Contours detected: 383	Expected: 2
    +
    +- Glyph name: uni04C2	Contours detected: 280	Expected: 2
    +
    +- Glyph name: uni04CB	Contours detected: 223	Expected: 1 or 2
    +
    +- Glyph name: uni04CC	Contours detected: 167	Expected: 1 or 2
    +
    +- Glyph name: uni04CF	Contours detected: 106	Expected: 1
    +
    +- Glyph name: uni04D0	Contours detected: 254	Expected: 3
    +
    +- Glyph name: uni04D1	Contours detected: 201	Expected: 3
    +
    +- Glyph name: uni04D2	Contours detected: 266	Expected: 4
    +
    +- Glyph name: uni04D3	Contours detected: 211	Expected: 4
    +
    +- Glyph name: uni04D4	Contours detected: 319	Expected: 2
    +
    +- Glyph name: uni04D5	Contours detected: 243	Expected: 3
    +
    +- Glyph name: uni04D6	Contours detected: 266	Expected: 2
    +
    +- Glyph name: uni04D7	Contours detected: 225	Expected: 3
    +
    +- Glyph name: uni04D8	Contours detected: 269	Expected: 2
    +
    +- Glyph name: uni04D9	Contours detected: 159	Expected: 2
    +
    +- Glyph name: uni04DC	Contours detected: 395	Expected: 3
    +
    +- Glyph name: uni04DD	Contours detected: 290	Expected: 3
    +
    +- Glyph name: uni04DE	Contours detected: 269	Expected: 3
    +
    +- Glyph name: uni04DF	Contours detected: 191	Expected: 3
    +
    +- Glyph name: uni04E2	Contours detected: 304	Expected: 2
    +
    +- Glyph name: uni04E3	Contours detected: 227	Expected: 2
    +
    +- Glyph name: uni04E4	Contours detected: 306	Expected: 3
    +
    +- Glyph name: uni04E5	Contours detected: 229	Expected: 3
    +
    +- Glyph name: uni04E6	Contours detected: 271	Expected: 4
    +
    +- Glyph name: uni04E7	Contours detected: 199	Expected: 4
    +
    +- Glyph name: uni04E8	Contours detected: 236	Expected: 3
    +
    +- Glyph name: uni04E9	Contours detected: 154	Expected: 3
    +
    +- Glyph name: uni04EE	Contours detected: 228	Expected: 2
    +
    +- Glyph name: uni04EF	Contours detected: 216	Expected: 2
    +
    +- Glyph name: uni04F0	Contours detected: 230	Expected: 3
    +
    +- Glyph name: uni04F1	Contours detected: 218	Expected: 3
    +
    +- Glyph name: uni04F2	Contours detected: 226	Expected: 3
    +
    +- Glyph name: uni04F3	Contours detected: 214	Expected: 3
    +
    +- Glyph name: uni04F4	Contours detected: 251	Expected: 3
    +
    +- Glyph name: uni04F5	Contours detected: 196	Expected: 3
    +
    +- Glyph name: uni04F6	Contours detected: 183	Expected: 1 or 2
    +
    +- Glyph name: uni04F7	Contours detected: 131	Expected: 1 or 2
    +
    +- Glyph name: uni04F8	Contours detected: 356	Expected: 5
    +
    +- Glyph name: uni04F9	Contours detected: 252	Expected: 5
    +
    +- Glyph name: uni051A	Contours detected: 243	Expected: 2
    +
    +- Glyph name: uni051B	Contours detected: 201	Expected: 2
    +
    +- Glyph name: uni051C	Contours detected: 264	Expected: 1
    +
    +- Glyph name: uni051D	Contours detected: 198	Expected: 1
    +
    +- Glyph name: uni0524	Contours detected: 270	Expected: 1
    +
    +- Glyph name: uni0525	Contours detected: 191	Expected: 1
    +
    +- Glyph name: Wgrave	Contours detected: 295	Expected: 2
    +
    +- Glyph name: wgrave	Contours detected: 224	Expected: 2
    +
    +- Glyph name: Wacute	Contours detected: 295	Expected: 2
    +
    +- Glyph name: wacute	Contours detected: 230	Expected: 2
    +
    +- Glyph name: Wdieresis	Contours detected: 305	Expected: 3
    +
    +- Glyph name: wdieresis	Contours detected: 246	Expected: 3
    +
    +- Glyph name: uni1E9E	Contours detected: 234	Expected: 1
    +
    +- Glyph name: Ygrave	Contours detected: 197	Expected: 2
    +
    +- Glyph name: ygrave	Contours detected: 208	Expected: 2
    +
    +- Glyph name: endash	Contours detected: 57	Expected: 1
    +
    +- Glyph name: emdash	Contours detected: 80	Expected: 1
    +
    +- Glyph name: quoteleft	Contours detected: 38	Expected: 1
    +
    +- Glyph name: quoteright	Contours detected: 39	Expected: 1
    +
    +- Glyph name: quotesinglbase	Contours detected: 37	Expected: 1
    +
    +- Glyph name: quotedblleft	Contours detected: 75	Expected: 2
    +
    +- Glyph name: quotedblright	Contours detected: 74	Expected: 2
    +
    +- Glyph name: quotedblbase	Contours detected: 81	Expected: 2
    +
    +- Glyph name: dagger	Contours detected: 123	Expected: 1 or 2
    +
    +- Glyph name: daggerdbl	Contours detected: 150	Expected: 1 or 3
    +
    +- Glyph name: bullet	Contours detected: 39	Expected: 1
    +
    +- Glyph name: ellipsis	Contours detected: 115	Expected: 3
    +
    +- Glyph name: perthousand	Contours detected: 285	Expected: 6 or 7
    +
    +- Glyph name: guilsinglleft	Contours detected: 67	Expected: 1
    +
    +- Glyph name: guilsinglright	Contours detected: 58	Expected: 1
    +
    +- Glyph name: fraction	Contours detected: 73	Expected: 1
    +
    +- Glyph name: uni2070	Contours detected: 62	Expected: 2 or 3
    +
    +- Glyph name: uni2074	Contours detected: 54	Expected: 1 or 2
    +
    +- Glyph name: uni2075	Contours detected: 61	Expected: 1
    +
    +- Glyph name: uni2076	Contours detected: 55	Expected: 2
    +
    +- Glyph name: uni2077	Contours detected: 49	Expected: 1
    +
    +- Glyph name: uni2078	Contours detected: 67	Expected: 3
    +
    +- Glyph name: uni2079	Contours detected: 60	Expected: 2
    +
    +- Glyph name: uni207D	Contours detected: 46	Expected: 1
    +
    +- Glyph name: uni207E	Contours detected: 47	Expected: 1
    +
    +- Glyph name: uni2080	Contours detected: 62	Expected: 2 or 3
    +
    +- Glyph name: uni2081	Contours detected: 40	Expected: 1
    +
    +- Glyph name: uni2082	Contours detected: 66	Expected: 1
    +
    +- Glyph name: uni2083	Contours detected: 58	Expected: 1
    +
    +- Glyph name: uni2084	Contours detected: 54	Expected: 1 or 2
    +
    +- Glyph name: uni2085	Contours detected: 61	Expected: 1
    +
    +- Glyph name: uni2086	Contours detected: 55	Expected: 2
    +
    +- Glyph name: uni2087	Contours detected: 49	Expected: 1
    +
    +- Glyph name: uni2088	Contours detected: 67	Expected: 3
    +
    +- Glyph name: uni2089	Contours detected: 60	Expected: 2
    +
    +- Glyph name: uni208D	Contours detected: 46	Expected: 1
    +
    +- Glyph name: uni208E	Contours detected: 47	Expected: 1
    +
    +- Glyph name: uni20AA	Contours detected: 326	Expected: 2
    +
    +- Glyph name: Euro	Contours detected: 237	Expected: 1 or 2
    +
    +- Glyph name: uni20AE	Contours detected: 203	Expected: 1
    +
    +- Glyph name: uni20B4	Contours detected: 203	Expected: 1 or 2
    +
    +- Glyph name: uni20B8	Contours detected: 183	Expected: 2
    +
    +- Glyph name: uni20B9	Contours detected: 186	Expected: 1
    +
    +- Glyph name: uni20BD	Contours detected: 224	Expected: 2
    +
    +- Glyph name: uni2116	Contours detected: 412	Expected: 3 or 4
    +
    +- Glyph name: trademark	Contours detected: 88	Expected: 2
    +
    +- Glyph name: estimated	Contours detected: 177	Expected: 2
    +
    +- Glyph name: uni2153	Contours detected: 171	Expected: 3
    +
    +- Glyph name: uni2154	Contours detected: 197	Expected: 1 or 3
    +
    +- Glyph name: oneeighth	Contours detected: 180	Expected: 5
    +
    +- Glyph name: threeeighths	Contours detected: 198	Expected: 5
    +
    +- Glyph name: fiveeighths	Contours detected: 201	Expected: 5
    +
    +- Glyph name: seveneighths	Contours detected: 189	Expected: 5
    +
    +- Glyph name: partialdiff	Contours detected: 180	Expected: 2
    +
    +- Glyph name: uni2206	Contours detected: 176	Expected: 2
    +
    +- Glyph name: product	Contours detected: 306	Expected: 1
    +
    +- Glyph name: summation	Contours detected: 247	Expected: 1
    +
    +- Glyph name: minus	Contours detected: 59	Expected: 1
    +
    +- Glyph name: uni2215	Contours detected: 112	Expected: 1
    +
    +- Glyph name: radical	Contours detected: 181	Expected: 1
    +
    +- Glyph name: infinity	Contours detected: 175	Expected: 3
    +
    +- Glyph name: integral	Contours detected: 129	Expected: 1
    +
    +- Glyph name: approxequal	Contours detected: 114	Expected: 2
    +
    +- Glyph name: notequal	Contours detected: 134	Expected: 1
    +
    +- Glyph name: lessequal	Contours detected: 146	Expected: 2
    +
    +- Glyph name: greaterequal	Contours detected: 141	Expected: 2
    +
    +- Glyph name: lozenge	Contours detected: 147	Expected: 2
    +
    +- Glyph name: fi	Contours detected: 311	Expected: 1, 2 or 3
    +
    +- Glyph name: fl	Contours detected: 293	Expected: 1 or 2
    +
    +- Glyph name: A	Contours detected: 218	Expected: 2
    +
    +- Glyph name: AE	Contours detected: 319	Expected: 2
    +
    +- Glyph name: AEacute	Contours detected: 350	Expected: 3
    +
    +- Glyph name: Aacute	Contours detected: 249	Expected: 3
    +
    +- Glyph name: Abreve	Contours detected: 254	Expected: 3
    +
    +- Glyph name: Acircumflex	Contours detected: 257	Expected: 3
    +
    +- Glyph name: Adieresis	Contours detected: 259	Expected: 4
    +
    +- Glyph name: Agrave	Contours detected: 249	Expected: 3
    +
    +- Glyph name: Amacron	Contours detected: 260	Expected: 3
    +
    +- Glyph name: Aogonek	Contours detected: 225	Expected: 2 or 3
    +
    +- Glyph name: Aring	Contours detected: 241	Expected: 3 or 4
    +
    +- Glyph name: Atilde	Contours detected: 262	Expected: 3
    +
    +- Glyph name: B	Contours detected: 249	Expected: 2 or 3
    +
    +- Glyph name: C	Contours detected: 203	Expected: 1
    +
    +- Glyph name: Cacute	Contours detected: 234	Expected: 2
    +
    +- Glyph name: Ccaron	Contours detected: 239	Expected: 2
    +
    +- Glyph name: Ccedilla	Contours detected: 224	Expected: 1 or 2
    +
    +- Glyph name: Ccircumflex	Contours detected: 242	Expected: 2
    +
    +- Glyph name: Cdotaccent	Contours detected: 231	Expected: 2
    +
    +- Glyph name: D	Contours detected: 239	Expected: 2
    +
    +- Glyph name: Dcaron	Contours detected: 275	Expected: 3
    +
    +- Glyph name: Dcroat	Contours detected: 242	Expected: 2
    +
    +- Glyph name: E	Contours detected: 230	Expected: 1
    +
    +- Glyph name: Eacute	Contours detected: 261	Expected: 2
    +
    +- Glyph name: Ebreve	Contours detected: 266	Expected: 2
    +
    +- Glyph name: Ecaron	Contours detected: 266	Expected: 2
    +
    +- Glyph name: Ecircumflex	Contours detected: 269	Expected: 2
    +
    +- Glyph name: Edieresis	Contours detected: 271	Expected: 3
    +
    +- Glyph name: Edotaccent	Contours detected: 258	Expected: 2
    +
    +- Glyph name: Egrave	Contours detected: 261	Expected: 2
    +
    +- Glyph name: Emacron	Contours detected: 272	Expected: 2
    +
    +- Glyph name: Eng	Contours detected: 283	Expected: 1
    +
    +- Glyph name: Eogonek	Contours detected: 279	Expected: 1 or 2
    +
    +- Glyph name: Eth	Contours detected: 252	Expected: 2
    +
    +- Glyph name: Euro	Contours detected: 237	Expected: 1 or 2
    +
    +- Glyph name: F	Contours detected: 217	Expected: 1
    +
    +- Glyph name: G	Contours detected: 243	Expected: 1
    +
    +- Glyph name: Gbreve	Contours detected: 279	Expected: 2
    +
    +- Glyph name: Gcircumflex	Contours detected: 282	Expected: 2
    +
    +- Glyph name: Gdotaccent	Contours detected: 271	Expected: 2
    +
    +- Glyph name: H	Contours detected: 243	Expected: 1
    +
    +- Glyph name: Hbar	Contours detected: 257	Expected: 2
    +
    +- Glyph name: Hcircumflex	Contours detected: 282	Expected: 2
    +
    +- Glyph name: I	Contours detected: 111	Expected: 1
    +
    +- Glyph name: IJ	Contours detected: 231	Expected: 1 or 2
    +
    +- Glyph name: Iacute	Contours detected: 142	Expected: 2
    +
    +- Glyph name: Ibreve	Contours detected: 147	Expected: 2
    +
    +- Glyph name: Icircumflex	Contours detected: 150	Expected: 2
    +
    +- Glyph name: Idieresis	Contours detected: 152	Expected: 3
    +
    +- Glyph name: Idotaccent	Contours detected: 139	Expected: 2
    +
    +- Glyph name: Igrave	Contours detected: 142	Expected: 2
    +
    +- Glyph name: Imacron	Contours detected: 153	Expected: 2
    +
    +- Glyph name: Iogonek	Contours detected: 142	Expected: 1 or 2
    +
    +- Glyph name: Itilde	Contours detected: 155	Expected: 2
    +
    +- Glyph name: J	Contours detected: 193	Expected: 1
    +
    +- Glyph name: Jcircumflex	Contours detected: 232	Expected: 2
    +
    +- Glyph name: K	Contours detected: 256	Expected: 1 or 2
    +
    +- Glyph name: L	Contours detected: 156	Expected: 1
    +
    +- Glyph name: Lacute	Contours detected: 187	Expected: 2
    +
    +- Glyph name: Lcaron	Contours detected: 181	Expected: 2
    +
    +- Glyph name: Ldot	Contours detected: 179	Expected: 2
    +
    +- Glyph name: Lslash	Contours detected: 195	Expected: 1
    +
    +- Glyph name: M	Contours detected: 255	Expected: 1
    +
    +- Glyph name: N	Contours detected: 239	Expected: 1
    +
    +- Glyph name: Nacute	Contours detected: 270	Expected: 2
    +
    +- Glyph name: Ncaron	Contours detected: 275	Expected: 2
    +
    +- Glyph name: Ntilde	Contours detected: 283	Expected: 2
    +
    +- Glyph name: O	Contours detected: 223	Expected: 2
    +
    +- Glyph name: OE	Contours detected: 331	Expected: 2
    +
    +- Glyph name: Oacute	Contours detected: 254	Expected: 3
    +
    +- Glyph name: Ocircumflex	Contours detected: 262	Expected: 3
    +
    +- Glyph name: Odieresis	Contours detected: 264	Expected: 4
    +
    +- Glyph name: Ograve	Contours detected: 254	Expected: 3
    +
    +- Glyph name: Ohungarumlaut	Contours detected: 271	Expected: 4
    +
    +- Glyph name: Omacron	Contours detected: 265	Expected: 3
    +
    +- Glyph name: Oslash	Contours detected: 256	Expected: 2 or 3
    +
    +- Glyph name: Oslashacute	Contours detected: 287	Expected: 4
    +
    +- Glyph name: Otilde	Contours detected: 267	Expected: 3
    +
    +- Glyph name: P	Contours detected: 196	Expected: 1 or 2
    +
    +- Glyph name: Q	Contours detected: 243	Expected: 2
    +
    +- Glyph name: R	Contours detected: 229	Expected: 1 or 2
    +
    +- Glyph name: Racute	Contours detected: 260	Expected: 3
    +
    +- Glyph name: Rcaron	Contours detected: 265	Expected: 3
    +
    +- Glyph name: S	Contours detected: 240	Expected: 1
    +
    +- Glyph name: Sacute	Contours detected: 271	Expected: 2
    +
    +- Glyph name: Scaron	Contours detected: 276	Expected: 2
    +
    +- Glyph name: Scircumflex	Contours detected: 279	Expected: 2
    +
    +- Glyph name: T	Contours detected: 184	Expected: 1
    +
    +- Glyph name: Tbar	Contours detected: 186	Expected: 1
    +
    +- Glyph name: Tcaron	Contours detected: 220	Expected: 2
    +
    +- Glyph name: Thorn	Contours detected: 197	Expected: 1 or 2
    +
    +- Glyph name: U	Contours detected: 226	Expected: 1
    +
    +- Glyph name: Uacute	Contours detected: 257	Expected: 2
    +
    +- Glyph name: Ubreve	Contours detected: 262	Expected: 2
    +
    +- Glyph name: Ucircumflex	Contours detected: 265	Expected: 2
    +
    +- Glyph name: Udieresis	Contours detected: 267	Expected: 3
    +
    +- Glyph name: Ugrave	Contours detected: 257	Expected: 2
    +
    +- Glyph name: Uhungarumlaut	Contours detected: 274	Expected: 3
    +
    +- Glyph name: Umacron	Contours detected: 268	Expected: 2
    +
    +- Glyph name: Uogonek	Contours detected: 241	Expected: 1
    +
    +- Glyph name: Uring	Contours detected: 249	Expected: 3
    +
    +- Glyph name: Utilde	Contours detected: 270	Expected: 2
    +
    +- Glyph name: V	Contours detected: 191	Expected: 1
    +
    +- Glyph name: W	Contours detected: 264	Expected: 1 or 2
    +
    +- Glyph name: Wacute	Contours detected: 295	Expected: 2
    +
    +- Glyph name: Wcircumflex	Contours detected: 303	Expected: 2
    +
    +- Glyph name: Wdieresis	Contours detected: 305	Expected: 3
    +
    +- Glyph name: Wgrave	Contours detected: 295	Expected: 2
    +
    +- Glyph name: X	Contours detected: 215	Expected: 1
    +
    +- Glyph name: Y	Contours detected: 166	Expected: 1
    +
    +- Glyph name: Yacute	Contours detected: 197	Expected: 2
    +
    +- Glyph name: Ycircumflex	Contours detected: 205	Expected: 2
    +
    +- Glyph name: Ydieresis	Contours detected: 207	Expected: 3
    +
    +- Glyph name: Ygrave	Contours detected: 197	Expected: 2
    +
    +- Glyph name: Z	Contours detected: 217	Expected: 1
    +
    +- Glyph name: Zacute	Contours detected: 248	Expected: 2
    +
    +- Glyph name: Zcaron	Contours detected: 253	Expected: 2
    +
    +- Glyph name: Zdotaccent	Contours detected: 245	Expected: 2
    +
    +- Glyph name: a	Contours detected: 163	Expected: 2
    +
    +- Glyph name: aacute	Contours detected: 195	Expected: 3
    +
    +- Glyph name: abreve	Contours detected: 197	Expected: 3
    +
    +- Glyph name: acircumflex	Contours detected: 193	Expected: 3
    +
    +- Glyph name: acute	Contours detected: 32	Expected: 1
    +
    +- Glyph name: adieresis	Contours detected: 211	Expected: 4
    +
    +- Glyph name: ae	Contours detected: 243	Expected: 3
    +
    +- Glyph name: aeacute	Contours detected: 275	Expected: 4
    +
    +- Glyph name: agrave	Contours detected: 189	Expected: 3
    +
    +- Glyph name: amacron	Contours detected: 209	Expected: 3
    +
    +- Glyph name: ampersand	Contours detected: 231	Expected: 1, 2 or 3
    +
    +- Glyph name: aogonek	Contours detected: 173	Expected: 2
    +
    +- Glyph name: approxequal	Contours detected: 114	Expected: 2
    +
    +- Glyph name: aring	Contours detected: 190	Expected: 4
    +
    +- Glyph name: asciicircum	Contours detected: 34	Expected: 1
    +
    +- Glyph name: asciitilde	Contours detected: 63	Expected: 1
    +
    +- Glyph name: asterisk	Contours detected: 72	Expected: 1 or 4
    +
    +- Glyph name: at	Contours detected: 263	Expected: 2
    +
    +- Glyph name: atilde	Contours detected: 208	Expected: 3
    +
    +- Glyph name: b	Contours detected: 190	Expected: 2
    +
    +- Glyph name: backslash	Contours detected: 110	Expected: 1
    +
    +- Glyph name: bar	Contours detected: 136	Expected: 1
    +
    +- Glyph name: braceleft	Contours detected: 150	Expected: 1
    +
    +- Glyph name: braceright	Contours detected: 151	Expected: 1
    +
    +- Glyph name: bracketleft	Contours detected: 162	Expected: 1
    +
    +- Glyph name: bracketright	Contours detected: 181	Expected: 1
    +
    +- Glyph name: breve	Contours detected: 34	Expected: 1
    +
    +- Glyph name: brokenbar	Contours detected: 87	Expected: 2
    +
    +- Glyph name: bullet	Contours detected: 39	Expected: 1
    +
    +- Glyph name: c	Contours detected: 133	Expected: 1
    +
    +- Glyph name: cacute	Contours detected: 165	Expected: 2
    +
    +- Glyph name: caron	Contours detected: 37	Expected: 1
    +
    +- Glyph name: ccaron	Contours detected: 170	Expected: 2
    +
    +- Glyph name: ccedilla	Contours detected: 148	Expected: 1 or 2
    +
    +- Glyph name: ccircumflex	Contours detected: 163	Expected: 2
    +
    +- Glyph name: cdotaccent	Contours detected: 155	Expected: 2
    +
    +- Glyph name: cedilla	Contours detected: 24	Expected: 1
    +
    +- Glyph name: cent	Contours detected: 155	Expected: 1 or 2
    +
    +- Glyph name: circumflex	Contours detected: 30	Expected: 1
    +
    +- Glyph name: colon	Contours detected: 69	Expected: 2
    +
    +- Glyph name: comma	Contours detected: 37	Expected: 1
    +
    +- Glyph name: copyright	Contours detected: 197	Expected: 3
    +
    +- Glyph name: currency	Contours detected: 153	Expected: 2
    +
    +- Glyph name: d	Contours detected: 193	Expected: 2
    +
    +- Glyph name: dagger	Contours detected: 123	Expected: 1 or 2
    +
    +- Glyph name: daggerdbl	Contours detected: 150	Expected: 1 or 3
    +
    +- Glyph name: dcaron	Contours detected: 218	Expected: 3
    +
    +- Glyph name: dcroat	Contours detected: 212	Expected: 2
    +
    +- Glyph name: degree	Contours detected: 71	Expected: 2
    +
    +- Glyph name: dieresis	Contours detected: 48	Expected: 2
    +
    +- Glyph name: divide	Contours detected: 98	Expected: 3
    +
    +- Glyph name: dollar	Contours detected: 224	Expected: 1, 3 or 5
    +
    +- Glyph name: dotaccent	Contours detected: 22	Expected: 1
    +
    +- Glyph name: dotlessi	Contours detected: 79	Expected: 1
    +
    +- Glyph name: e	Contours detected: 187	Expected: 2
    +
    +- Glyph name: eacute	Contours detected: 219	Expected: 3
    +
    +- Glyph name: ebreve	Contours detected: 221	Expected: 3
    +
    +- Glyph name: ecaron	Contours detected: 224	Expected: 3
    +
    +- Glyph name: ecircumflex	Contours detected: 217	Expected: 3
    +
    +- Glyph name: edieresis	Contours detected: 235	Expected: 4
    +
    +- Glyph name: edotaccent	Contours detected: 209	Expected: 3
    +
    +- Glyph name: egrave	Contours detected: 213	Expected: 3
    +
    +- Glyph name: eight	Contours detected: 218	Expected: 3
    +
    +- Glyph name: ellipsis	Contours detected: 115	Expected: 3
    +
    +- Glyph name: emacron	Contours detected: 233	Expected: 3
    +
    +- Glyph name: emdash	Contours detected: 80	Expected: 1
    +
    +- Glyph name: endash	Contours detected: 57	Expected: 1
    +
    +- Glyph name: eng	Contours detected: 212	Expected: 1
    +
    +- Glyph name: eogonek	Contours detected: 179	Expected: 2
    +
    +- Glyph name: equal	Contours detected: 102	Expected: 2
    +
    +- Glyph name: estimated	Contours detected: 177	Expected: 2
    +
    +- Glyph name: eth	Contours detected: 199	Expected: 2
    +
    +- Glyph name: exclam	Contours detected: 122	Expected: 2
    +
    +- Glyph name: exclamdown	Contours detected: 102	Expected: 2
    +
    +- Glyph name: f	Contours detected: 149	Expected: 1
    +
    +- Glyph name: fi	Contours detected: 311	Expected: 3
    +
    +- Glyph name: five	Contours detected: 255	Expected: 1
    +
    +- Glyph name: fiveeighths	Contours detected: 201	Expected: 5
    +
    +- Glyph name: fl	Contours detected: 293	Expected: 2
    +
    +- Glyph name: four	Contours detected: 201	Expected: 1 or 2
    +
    +- Glyph name: fraction	Contours detected: 73	Expected: 1
    +
    +- Glyph name: g	Contours detected: 219	Expected: 2 or 3
    +
    +- Glyph name: gbreve	Contours detected: 253	Expected: 3 or 4
    +
    +- Glyph name: gcircumflex	Contours detected: 249	Expected: 3 or 4
    +
    +- Glyph name: gdotaccent	Contours detected: 241	Expected: 3 or 4
    +
    +- Glyph name: germandbls	Contours detected: 221	Expected: 1
    +
    +- Glyph name: grave	Contours detected: 26	Expected: 1
    +
    +- Glyph name: greater	Contours detected: 106	Expected: 1
    +
    +- Glyph name: greaterequal	Contours detected: 141	Expected: 2
    +
    +- Glyph name: guillemotleft	Contours detected: 118	Expected: 2
    +
    +- Glyph name: guillemotright	Contours detected: 122	Expected: 2
    +
    +- Glyph name: guilsinglleft	Contours detected: 67	Expected: 1
    +
    +- Glyph name: guilsinglright	Contours detected: 58	Expected: 1
    +
    +- Glyph name: h	Contours detected: 200	Expected: 1
    +
    +- Glyph name: hbar	Contours detected: 214	Expected: 1
    +
    +- Glyph name: hcircumflex	Contours detected: 230	Expected: 2
    +
    +- Glyph name: hungarumlaut	Contours detected: 44	Expected: 2
    +
    +- Glyph name: hyphen	Contours detected: 48	Expected: 1
    +
    +- Glyph name: i	Contours detected: 105	Expected: 2
    +
    +- Glyph name: iacute	Contours detected: 111	Expected: 2
    +
    +- Glyph name: ibreve	Contours detected: 113	Expected: 2
    +
    +- Glyph name: icircumflex	Contours detected: 109	Expected: 2
    +
    +- Glyph name: idieresis	Contours detected: 127	Expected: 3
    +
    +- Glyph name: igrave	Contours detected: 105	Expected: 2
    +
    +- Glyph name: ij	Contours detected: 241	Expected: 3 or 4
    +
    +- Glyph name: imacron	Contours detected: 125	Expected: 2
    +
    +- Glyph name: infinity	Contours detected: 175	Expected: 3
    +
    +- Glyph name: integral	Contours detected: 129	Expected: 1
    +
    +- Glyph name: iogonek	Contours detected: 128	Expected: 2 or 3
    +
    +- Glyph name: itilde	Contours detected: 124	Expected: 2
    +
    +- Glyph name: j	Contours detected: 136	Expected: 2
    +
    +- Glyph name: jcircumflex	Contours detected: 190	Expected: 2
    +
    +- Glyph name: k	Contours detected: 218	Expected: 1 or 2
    +
    +- Glyph name: kgreenlandic	Contours detected: 163	Expected: 1 or 2
    +
    +- Glyph name: l	Contours detected: 106	Expected: 1
    +
    +- Glyph name: lacute	Contours detected: 138	Expected: 2
    +
    +- Glyph name: lcaron	Contours detected: 131	Expected: 2
    +
    +- Glyph name: ldot	Contours detected: 131	Expected: 2
    +
    +- Glyph name: less	Contours detected: 108	Expected: 1
    +
    +- Glyph name: lessequal	Contours detected: 146	Expected: 2
    +
    +- Glyph name: logicalnot	Contours detected: 62	Expected: 1
    +
    +- Glyph name: longs	Contours detected: 132	Expected: 1
    +
    +- Glyph name: lozenge	Contours detected: 147	Expected: 2
    +
    +- Glyph name: lslash	Contours detected: 112	Expected: 1
    +
    +- Glyph name: m	Contours detected: 264	Expected: 1
    +
    +- Glyph name: macron	Contours detected: 46	Expected: 1
    +
    +- Glyph name: minus	Contours detected: 59	Expected: 1
    +
    +- Glyph name: multiply	Contours detected: 98	Expected: 1
    +
    +- Glyph name: n	Contours detected: 167	Expected: 1
    +
    +- Glyph name: nacute	Contours detected: 199	Expected: 2
    +
    +- Glyph name: napostrophe	Contours detected: 210	Expected: 2
    +
    +- Glyph name: ncaron	Contours detected: 204	Expected: 2
    +
    +- Glyph name: nine	Contours detected: 197	Expected: 1 or 2
    +
    +- Glyph name: notequal	Contours detected: 134	Expected: 1
    +
    +- Glyph name: ntilde	Contours detected: 212	Expected: 2
    +
    +- Glyph name: numbersign	Contours detected: 182	Expected: 2
    +
    +- Glyph name: o	Contours detected: 151	Expected: 2
    +
    +- Glyph name: oacute	Contours detected: 183	Expected: 3
    +
    +- Glyph name: ocircumflex	Contours detected: 181	Expected: 3
    +
    +- Glyph name: odieresis	Contours detected: 199	Expected: 4
    +
    +- Glyph name: oe	Contours detected: 265	Expected: 3
    +
    +- Glyph name: ogonek	Contours detected: 38	Expected: 1
    +
    +- Glyph name: ograve	Contours detected: 177	Expected: 3
    +
    +- Glyph name: ohungarumlaut	Contours detected: 195	Expected: 4
    +
    +- Glyph name: omacron	Contours detected: 197	Expected: 3
    +
    +- Glyph name: one	Contours detected: 134	Expected: 1
    +
    +- Glyph name: oneeighth	Contours detected: 180	Expected: 5
    +
    +- Glyph name: onehalf	Contours detected: 179	Expected: 3
    +
    +- Glyph name: onequarter	Contours detected: 167	Expected: 3 or 4
    +
    +- Glyph name: ordfeminine	Contours detected: 50	Expected: 2 or 3
    +
    +- Glyph name: ordmasculine	Contours detected: 48	Expected: 2 or 3
    +
    +- Glyph name: oslash	Contours detected: 180	Expected: 3
    +
    +- Glyph name: oslashacute	Contours detected: 212	Expected: 4
    +
    +- Glyph name: otilde	Contours detected: 196	Expected: 3
    +
    +- Glyph name: p	Contours detected: 225	Expected: 2
    +
    +- Glyph name: paragraph	Contours detected: 218	Expected: 1, 2 or 3
    +
    +- Glyph name: parenleft	Contours detected: 144	Expected: 1
    +
    +- Glyph name: parenright	Contours detected: 159	Expected: 1
    +
    +- Glyph name: partialdiff	Contours detected: 180	Expected: 2
    +
    +- Glyph name: percent	Contours detected: 208	Expected: 5
    +
    +- Glyph name: period	Contours detected: 34	Expected: 1
    +
    +- Glyph name: periodcentered	Contours detected: 41	Expected: 1
    +
    +- Glyph name: perthousand	Contours detected: 285	Expected: 6 or 7
    +
    +- Glyph name: plus	Contours detected: 101	Expected: 1
    +
    +- Glyph name: plusminus	Contours detected: 146	Expected: 1 or 2
    +
    +- Glyph name: product	Contours detected: 306	Expected: 1
    +
    +- Glyph name: q	Contours detected: 201	Expected: 2
    +
    +- Glyph name: question	Contours detected: 156	Expected: 2
    +
    +- Glyph name: questiondown	Contours detected: 156	Expected: 2
    +
    +- Glyph name: quotedbl	Contours detected: 75	Expected: 2
    +
    +- Glyph name: quotedblbase	Contours detected: 81	Expected: 2
    +
    +- Glyph name: quotedblleft	Contours detected: 75	Expected: 2
    +
    +- Glyph name: quotedblright	Contours detected: 74	Expected: 2
    +
    +- Glyph name: quoteleft	Contours detected: 38	Expected: 1
    +
    +- Glyph name: quoteright	Contours detected: 39	Expected: 1
    +
    +- Glyph name: quotesinglbase	Contours detected: 37	Expected: 1
    +
    +- Glyph name: quotesingle	Contours detected: 34	Expected: 1
    +
    +- Glyph name: r	Contours detected: 108	Expected: 1
    +
    +- Glyph name: racute	Contours detected: 140	Expected: 2
    +
    +- Glyph name: radical	Contours detected: 181	Expected: 1
    +
    +- Glyph name: rcaron	Contours detected: 145	Expected: 2
    +
    +- Glyph name: registered	Contours detected: 197	Expected: 3 or 4
    +
    +- Glyph name: ring	Contours detected: 27	Expected: 2
    +
    +- Glyph name: s	Contours detected: 146	Expected: 1
    +
    +- Glyph name: sacute	Contours detected: 178	Expected: 2
    +
    +- Glyph name: scaron	Contours detected: 183	Expected: 2
    +
    +- Glyph name: scircumflex	Contours detected: 176	Expected: 2
    +
    +- Glyph name: section	Contours detected: 229	Expected: 2
    +
    +- Glyph name: semicolon	Contours detected: 74	Expected: 2
    +
    +- Glyph name: seven	Contours detected: 159	Expected: 1
    +
    +- Glyph name: seveneighths	Contours detected: 189	Expected: 5
    +
    +- Glyph name: six	Contours detected: 213	Expected: 1 or 2
    +
    +- Glyph name: slash	Contours detected: 112	Expected: 1
    +
    +- Glyph name: sterling	Contours detected: 235	Expected: 1 or 2
    +
    +- Glyph name: summation	Contours detected: 247	Expected: 1
    +
    +- Glyph name: t	Contours detected: 140	Expected: 1
    +
    +- Glyph name: tbar	Contours detected: 165	Expected: 1
    +
    +- Glyph name: tcaron	Contours detected: 165	Expected: 2
    +
    +- Glyph name: thorn	Contours detected: 224	Expected: 2
    +
    +- Glyph name: three	Contours detected: 204	Expected: 1
    +
    +- Glyph name: threeeighths	Contours detected: 198	Expected: 5
    +
    +- Glyph name: threequarters	Contours detected: 185	Expected: 3 or 4
    +
    +- Glyph name: tilde	Contours detected: 45	Expected: 1
    +
    +- Glyph name: trademark	Contours detected: 88	Expected: 2
    +
    +- Glyph name: two	Contours detected: 213	Expected: 1
    +
    +- Glyph name: u	Contours detected: 170	Expected: 1
    +
    +- Glyph name: uacute	Contours detected: 202	Expected: 2
    +
    +- Glyph name: ubreve	Contours detected: 204	Expected: 2
    +
    +- Glyph name: ucircumflex	Contours detected: 200	Expected: 2
    +
    +- Glyph name: udieresis	Contours detected: 218	Expected: 3
    +
    +- Glyph name: ugrave	Contours detected: 196	Expected: 2
    +
    +- Glyph name: uhungarumlaut	Contours detected: 214	Expected: 3
    +
    +- Glyph name: umacron	Contours detected: 216	Expected: 2
    +
    +- Glyph name: underscore	Contours detected: 93	Expected: 1
    +
    +- Glyph name: uni00B5	Contours detected: 205	Expected: 1
    +
    +- Glyph name: uni0122	Contours detected: 275	Expected: 2
    +
    +- Glyph name: uni0123	Contours detected: 253	Expected: 3 or 4
    +
    +- Glyph name: uni0136	Contours detected: 288	Expected: 2 or 3
    +
    +- Glyph name: uni0137	Contours detected: 243	Expected: 2 or 3
    +
    +- Glyph name: uni013B	Contours detected: 188	Expected: 2
    +
    +- Glyph name: uni013C	Contours detected: 131	Expected: 2
    +
    +- Glyph name: uni0145	Contours detected: 271	Expected: 2
    +
    +- Glyph name: uni0146	Contours detected: 192	Expected: 2
    +
    +- Glyph name: uni0156	Contours detected: 261	Expected: 3
    +
    +- Glyph name: uni0157	Contours detected: 133	Expected: 2
    +
    +- Glyph name: uni0218	Contours detected: 272	Expected: 2
    +
    +- Glyph name: uni0219	Contours detected: 171	Expected: 2
    +
    +- Glyph name: uni021A	Contours detected: 216	Expected: 2
    +
    +- Glyph name: uni021B	Contours detected: 165	Expected: 2
    +
    +- Glyph name: uni0237	Contours detected: 160	Expected: 1
    +
    +- Glyph name: uni02BC	Contours detected: 25	Expected: 1
    +
    +- Glyph name: uni0302	Contours detected: 30	Expected: 1
    +
    +- Glyph name: uni0304	Contours detected: 46	Expected: 1
    +
    +- Glyph name: uni0306	Contours detected: 34	Expected: 1
    +
    +- Glyph name: uni0307	Contours detected: 22	Expected: 1
    +
    +- Glyph name: uni0308	Contours detected: 48	Expected: 2
    +
    +- Glyph name: uni030A	Contours detected: 27	Expected: 2
    +
    +- Glyph name: uni030B	Contours detected: 44	Expected: 2
    +
    +- Glyph name: uni030C	Contours detected: 37	Expected: 1
    +
    +- Glyph name: uni0312	Contours detected: 34	Expected: 1
    +
    +- Glyph name: uni0326	Contours detected: 25	Expected: 1
    +
    +- Glyph name: uni0327	Contours detected: 24	Expected: 1
    +
    +- Glyph name: uni0328	Contours detected: 38	Expected: 1
    +
    +- Glyph name: uni0335	Contours detected: 37	Expected: 1
    +
    +- Glyph name: uni0337	Contours detected: 48	Expected: 1
    +
    +- Glyph name: uni0338	Contours detected: 53	Expected: 1
    +
    +- Glyph name: uni0400	Contours detected: 261	Expected: 2
    +
    +- Glyph name: uni0401	Contours detected: 278	Expected: 3
    +
    +- Glyph name: uni0402	Contours detected: 257	Expected: 1
    +
    +- Glyph name: uni0403	Contours detected: 184	Expected: 2
    +
    +- Glyph name: uni0404	Contours detected: 208	Expected: 1
    +
    +- Glyph name: uni0405	Contours detected: 240	Expected: 1
    +
    +- Glyph name: uni0406	Contours detected: 111	Expected: 1
    +
    +- Glyph name: uni0407	Contours detected: 159	Expected: 3
    +
    +- Glyph name: uni0408	Contours detected: 193	Expected: 1
    +
    +- Glyph name: uni0409	Contours detected: 325	Expected: 2
    +
    +- Glyph name: uni040A	Contours detected: 366	Expected: 2
    +
    +- Glyph name: uni040B	Contours detected: 235	Expected: 1
    +
    +- Glyph name: uni040C	Contours detected: 255	Expected: 2
    +
    +- Glyph name: uni040D	Contours detected: 289	Expected: 2
    +
    +- Glyph name: uni040E	Contours detected: 218	Expected: 2
    +
    +- Glyph name: uni040F	Contours detected: 246	Expected: 1
    +
    +- Glyph name: uni0410	Contours detected: 218	Expected: 2
    +
    +- Glyph name: uni0411	Contours detected: 234	Expected: 2
    +
    +- Glyph name: uni0412	Contours detected: 249	Expected: 3
    +
    +- Glyph name: uni0413	Contours detected: 153	Expected: 1
    +
    +- Glyph name: uni0414	Contours detected: 309	Expected: 2
    +
    +- Glyph name: uni0415	Contours detected: 230	Expected: 1
    +
    +- Glyph name: uni0416	Contours detected: 347	Expected: 1
    +
    +- Glyph name: uni0417	Contours detected: 221	Expected: 1
    +
    +- Glyph name: uni0418	Contours detected: 258	Expected: 1
    +
    +- Glyph name: uni0419	Contours detected: 294	Expected: 2
    +
    +- Glyph name: uni041A	Contours detected: 224	Expected: 1
    +
    +- Glyph name: uni041B	Contours detected: 267	Expected: 1
    +
    +- Glyph name: uni041C	Contours detected: 255	Expected: 1
    +
    +- Glyph name: uni041D	Contours detected: 243	Expected: 1
    +
    +- Glyph name: uni041E	Contours detected: 223	Expected: 2
    +
    +- Glyph name: uni041F	Contours detected: 231	Expected: 1
    +
    +- Glyph name: uni0420	Contours detected: 196	Expected: 1 or 2
    +
    +- Glyph name: uni0421	Contours detected: 203	Expected: 1
    +
    +- Glyph name: uni0422	Contours detected: 184	Expected: 1
    +
    +- Glyph name: uni0423	Contours detected: 182	Expected: 1
    +
    +- Glyph name: uni0424	Contours detected: 298	Expected: 3
    +
    +- Glyph name: uni0425	Contours detected: 215	Expected: 1
    +
    +- Glyph name: uni0426	Contours detected: 263	Expected: 1
    +
    +- Glyph name: uni0427	Contours detected: 203	Expected: 1
    +
    +- Glyph name: uni0428	Contours detected: 338	Expected: 1
    +
    +- Glyph name: uni0429	Contours detected: 367	Expected: 1
    +
    +- Glyph name: uni042A	Contours detected: 210	Expected: 2
    +
    +- Glyph name: uni042B	Contours detected: 308	Expected: 3
    +
    +- Glyph name: uni042C	Contours detected: 211	Expected: 2
    +
    +- Glyph name: uni042D	Contours detected: 216	Expected: 1
    +
    +- Glyph name: uni042E	Contours detected: 346	Expected: 2
    +
    +- Glyph name: uni042F	Contours detected: 232	Expected: 2
    +
    +- Glyph name: uni0430	Contours detected: 163	Expected: 2
    +
    +- Glyph name: uni0431	Contours detected: 206	Expected: 2
    +
    +- Glyph name: uni0432	Contours detected: 193	Expected: 3
    +
    +- Glyph name: uni0433	Contours detected: 98	Expected: 1
    +
    +- Glyph name: uni0434	Contours detected: 237	Expected: 2
    +
    +- Glyph name: uni0435	Contours detected: 187	Expected: 2
    +
    +- Glyph name: uni0436	Contours detected: 242	Expected: 1
    +
    +- Glyph name: uni0437	Contours detected: 143	Expected: 1
    +
    +- Glyph name: uni0438	Contours detected: 181	Expected: 1
    +
    +- Glyph name: uni0439	Contours detected: 219	Expected: 2
    +
    +- Glyph name: uni043A	Contours detected: 164	Expected: 1
    +
    +- Glyph name: uni043B	Contours detected: 155	Expected: 1
    +
    +- Glyph name: uni043C	Contours detected: 183	Expected: 1
    +
    +- Glyph name: uni043D	Contours detected: 167	Expected: 1
    +
    +- Glyph name: uni043E	Contours detected: 151	Expected: 2
    +
    +- Glyph name: uni043F	Contours detected: 160	Expected: 1
    +
    +- Glyph name: uni0440	Contours detected: 225	Expected: 2
    +
    +- Glyph name: uni0441	Contours detected: 133	Expected: 1
    +
    +- Glyph name: uni0442	Contours detected: 119	Expected: 1
    +
    +- Glyph name: uni0443	Contours detected: 170	Expected: 1
    +
    +- Glyph name: uni0444	Contours detected: 275	Expected: 3
    +
    +- Glyph name: uni0445	Contours detected: 147	Expected: 1
    +
    +- Glyph name: uni0446	Contours detected: 221	Expected: 1
    +
    +- Glyph name: uni0447	Contours detected: 148	Expected: 1
    +
    +- Glyph name: uni0448	Contours detected: 225	Expected: 1
    +
    +- Glyph name: uni0449	Contours detected: 240	Expected: 1
    +
    +- Glyph name: uni044A	Contours detected: 152	Expected: 2
    +
    +- Glyph name: uni044B	Contours detected: 204	Expected: 3
    +
    +- Glyph name: uni044C	Contours detected: 132	Expected: 2
    +
    +- Glyph name: uni044D	Contours detected: 150	Expected: 1
    +
    +- Glyph name: uni044E	Contours detected: 229	Expected: 2
    +
    +- Glyph name: uni044F	Contours detected: 158	Expected: 2
    +
    +- Glyph name: uni0450	Contours detected: 213	Expected: 3
    +
    +- Glyph name: uni0451	Contours detected: 235	Expected: 4
    +
    +- Glyph name: uni0452	Contours detected: 235	Expected: 1
    +
    +- Glyph name: uni0453	Contours detected: 130	Expected: 2
    +
    +- Glyph name: uni0454	Contours detected: 135	Expected: 1
    +
    +- Glyph name: uni0455	Contours detected: 146	Expected: 1
    +
    +- Glyph name: uni0456	Contours detected: 105	Expected: 2
    +
    +- Glyph name: uni0457	Contours detected: 127	Expected: 3
    +
    +- Glyph name: uni0458	Contours detected: 136	Expected: 2
    +
    +- Glyph name: uni0459	Contours detected: 211	Expected: 2
    +
    +- Glyph name: uni045A	Contours detected: 220	Expected: 2
    +
    +- Glyph name: uni045B	Contours detected: 213	Expected: 1
    +
    +- Glyph name: uni045C	Contours detected: 196	Expected: 2
    +
    +- Glyph name: uni045D	Contours detected: 207	Expected: 2
    +
    +- Glyph name: uni045E	Contours detected: 208	Expected: 2
    +
    +- Glyph name: uni045F	Contours detected: 184	Expected: 1 or 2
    +
    +- Glyph name: uni0462	Contours detected: 211	Expected: 2
    +
    +- Glyph name: uni0463	Contours detected: 184	Expected: 2
    +
    +- Glyph name: uni046A	Contours detected: 320	Expected: 2
    +
    +- Glyph name: uni046B	Contours detected: 246	Expected: 2
    +
    +- Glyph name: uni0472	Contours detected: 234	Expected: 3
    +
    +- Glyph name: uni0473	Contours detected: 154	Expected: 3
    +
    +- Glyph name: uni0474	Contours detected: 209	Expected: 1
    +
    +- Glyph name: uni0475	Contours detected: 121	Expected: 1
    +
    +- Glyph name: uni0490	Contours detected: 170	Expected: 1
    +
    +- Glyph name: uni0491	Contours detected: 118	Expected: 1
    +
    +- Glyph name: uni0492	Contours detected: 166	Expected: 1
    +
    +- Glyph name: uni0493	Contours detected: 111	Expected: 1
    +
    +- Glyph name: uni0494	Contours detected: 234	Expected: 1
    +
    +- Glyph name: uni0495	Contours detected: 172	Expected: 1
    +
    +- Glyph name: uni0496	Contours detected: 372	Expected: 1 or 2
    +
    +- Glyph name: uni0497	Contours detected: 273	Expected: 1 or 2
    +
    +- Glyph name: uni0498	Contours detected: 220	Expected: 1 or 2
    +
    +- Glyph name: uni0499	Contours detected: 151	Expected: 1 or 2
    +
    +- Glyph name: uni049A	Contours detected: 261	Expected: 1 or 2
    +
    +- Glyph name: uni049B	Contours detected: 192	Expected: 1 or 2
    +
    +- Glyph name: uni049C	Contours detected: 249	Expected: 1
    +
    +- Glyph name: uni049D	Contours detected: 186	Expected: 1
    +
    +- Glyph name: uni04A0	Contours detected: 245	Expected: 1
    +
    +- Glyph name: uni04A1	Contours detected: 180	Expected: 1
    +
    +- Glyph name: uni04A2	Contours detected: 310	Expected: 1 or 2
    +
    +- Glyph name: uni04A3	Contours detected: 222	Expected: 1 or 2
    +
    +- Glyph name: uni04A4	Contours detected: 266	Expected: 1
    +
    +- Glyph name: uni04A5	Contours detected: 206	Expected: 1
    +
    +- Glyph name: uni04AA	Contours detected: 224	Expected: 1 or 2
    +
    +- Glyph name: uni04AB	Contours detected: 157	Expected: 1 or 2
    +
    +- Glyph name: uni04B6	Contours detected: 258	Expected: 1 or 2
    +
    +- Glyph name: uni04B7	Contours detected: 178	Expected: 1 or 2
    +
    +- Glyph name: uni04B8	Contours detected: 204	Expected: 1
    +
    +- Glyph name: uni04B9	Contours detected: 160	Expected: 1
    +
    +- Glyph name: uni04BA	Contours detected: 221	Expected: 1
    +
    +- Glyph name: uni04BB	Contours detected: 200	Expected: 1
    +
    +- Glyph name: uni04C0	Contours detected: 111	Expected: 1
    +
    +- Glyph name: uni04C1	Contours detected: 383	Expected: 2
    +
    +- Glyph name: uni04C2	Contours detected: 280	Expected: 2
    +
    +- Glyph name: uni04CB	Contours detected: 223	Expected: 1 or 2
    +
    +- Glyph name: uni04CC	Contours detected: 167	Expected: 1 or 2
    +
    +- Glyph name: uni04CF	Contours detected: 106	Expected: 1
    +
    +- Glyph name: uni04D0	Contours detected: 254	Expected: 3
    +
    +- Glyph name: uni04D1	Contours detected: 201	Expected: 3
    +
    +- Glyph name: uni04D2	Contours detected: 266	Expected: 4
    +
    +- Glyph name: uni04D3	Contours detected: 211	Expected: 4
    +
    +- Glyph name: uni04D4	Contours detected: 319	Expected: 2
    +
    +- Glyph name: uni04D5	Contours detected: 243	Expected: 3
    +
    +- Glyph name: uni04D6	Contours detected: 266	Expected: 2
    +
    +- Glyph name: uni04D7	Contours detected: 225	Expected: 3
    +
    +- Glyph name: uni04D8	Contours detected: 269	Expected: 2
    +
    +- Glyph name: uni04D9	Contours detected: 159	Expected: 2
    +
    +- Glyph name: uni04DC	Contours detected: 395	Expected: 3
    +
    +- Glyph name: uni04DD	Contours detected: 290	Expected: 3
    +
    +- Glyph name: uni04DE	Contours detected: 269	Expected: 3
    +
    +- Glyph name: uni04DF	Contours detected: 191	Expected: 3
    +
    +- Glyph name: uni04E2	Contours detected: 304	Expected: 2
    +
    +- Glyph name: uni04E3	Contours detected: 227	Expected: 2
    +
    +- Glyph name: uni04E4	Contours detected: 306	Expected: 3
    +
    +- Glyph name: uni04E5	Contours detected: 229	Expected: 3
    +
    +- Glyph name: uni04E6	Contours detected: 271	Expected: 4
    +
    +- Glyph name: uni04E7	Contours detected: 199	Expected: 4
    +
    +- Glyph name: uni04E8	Contours detected: 236	Expected: 3
    +
    +- Glyph name: uni04E9	Contours detected: 154	Expected: 3
    +
    +- Glyph name: uni04EE	Contours detected: 228	Expected: 2
    +
    +- Glyph name: uni04EF	Contours detected: 216	Expected: 2
    +
    +- Glyph name: uni04F0	Contours detected: 230	Expected: 3
    +
    +- Glyph name: uni04F1	Contours detected: 218	Expected: 3
    +
    +- Glyph name: uni04F2	Contours detected: 226	Expected: 3
    +
    +- Glyph name: uni04F3	Contours detected: 214	Expected: 3
    +
    +- Glyph name: uni04F4	Contours detected: 251	Expected: 3
    +
    +- Glyph name: uni04F5	Contours detected: 196	Expected: 3
    +
    +- Glyph name: uni04F6	Contours detected: 183	Expected: 1 or 2
    +
    +- Glyph name: uni04F7	Contours detected: 131	Expected: 1 or 2
    +
    +- Glyph name: uni04F8	Contours detected: 356	Expected: 5
    +
    +- Glyph name: uni04F9	Contours detected: 252	Expected: 5
    +
    +- Glyph name: uni051A	Contours detected: 243	Expected: 2
    +
    +- Glyph name: uni051B	Contours detected: 201	Expected: 2
    +
    +- Glyph name: uni051C	Contours detected: 264	Expected: 1
    +
    +- Glyph name: uni051D	Contours detected: 198	Expected: 1
    +
    +- Glyph name: uni0524	Contours detected: 270	Expected: 1
    +
    +- Glyph name: uni0525	Contours detected: 191	Expected: 1
    +
    +- Glyph name: uni1E9E	Contours detected: 234	Expected: 1
    +
    +- Glyph name: uni20AA	Contours detected: 326	Expected: 2
    +
    +- Glyph name: uni20AE	Contours detected: 203	Expected: 1
    +
    +- Glyph name: uni20B4	Contours detected: 203	Expected: 1 or 2
    +
    +- Glyph name: uni20B8	Contours detected: 183	Expected: 2
    +
    +- Glyph name: uni20B9	Contours detected: 186	Expected: 1
    +
    +- Glyph name: uni20BD	Contours detected: 224	Expected: 2
    +
    +- Glyph name: uni2116	Contours detected: 412	Expected: 3 or 4
    +
    +- Glyph name: uni2206	Contours detected: 176	Expected: 2
    +
    +- Glyph name: uni2215	Contours detected: 112	Expected: 1
    +
    +- Glyph name: uogonek	Contours detected: 193	Expected: 1
    +
    +- Glyph name: uring	Contours detected: 197	Expected: 3
    +
    +- Glyph name: utilde	Contours detected: 215	Expected: 2
    +
    +- Glyph name: v	Contours detected: 123	Expected: 1
    +
    +- Glyph name: w	Contours detected: 198	Expected: 1
    +
    +- Glyph name: wacute	Contours detected: 230	Expected: 2
    +
    +- Glyph name: wcircumflex	Contours detected: 228	Expected: 2
    +
    +- Glyph name: wdieresis	Contours detected: 246	Expected: 3
    +
    +- Glyph name: wgrave	Contours detected: 224	Expected: 2
    +
    +- Glyph name: x	Contours detected: 147	Expected: 1
    +
    +- Glyph name: y	Contours detected: 182	Expected: 1
    +
    +- Glyph name: yacute	Contours detected: 214	Expected: 2
    +
    +- Glyph name: ycircumflex	Contours detected: 212	Expected: 2
    +
    +- Glyph name: ydieresis	Contours detected: 230	Expected: 3
    +
    +- Glyph name: yen	Contours detected: 198	Expected: 1 or 2
    +
    +- Glyph name: ygrave	Contours detected: 208	Expected: 2
    +
    +- Glyph name: z	Contours detected: 144	Expected: 1
    +
    +- Glyph name: zacute	Contours detected: 176	Expected: 2
    +
    +- Glyph name: zcaron	Contours detected: 181	Expected: 2
    +
    +- Glyph name: zdotaccent	Contours detected: 166	Expected: 2
    +
    +- Glyph name: zero	Contours detected: 216	Expected: 2 or 3
    +
    +

    [code: contour-count]

    +
+

Check math signs have the same width.

+
Check ID: com.google.fonts/check/math_signs_width
+ +
⚠️ RubikDoodleTriangles-Regular.ttf
  • ⚠️ WARN

    The most common width is 538 among a set of 2 math glyphs. +The following math glyphs have a different width, though:

    +

    Width = 594: +plus

    +

    Width = 563: +equal

    +

    Width = 564: +logicalnot

    +

    Width = 576: +plusminus

    +

    Width = 639: +multiply

    +

    Width = 517: +divide

    +

    Width = 642: +minus

    +

    Width = 551: +notequal, approxequal

    +

    Width = 556: +greaterequal, lessequal +[code: width-outliers]

    +
+

Section: Shaping Checks

+⚠️⚠️⏩⏩⏩ +

Ensure dotted circle glyph is present and can attach marks.

+
Check ID: com.google.fonts/check/dotted_circle
+ +
⚠️ RubikDoodleTriangles-Regular.ttf
  • ⚠️ WARN

    No dotted circle glyph present [code: missing-dotted-circle]

    +
+

Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.

+
Check ID: com.google.fonts/check/soft_dotted
+ +
⚠️ RubikDoodleTriangles-Regular.ttf
  • ⚠️ WARN

    The dot of soft dotted characters used in orthographies must disappear in the following strings: į̀ į́ į̂ į̃ į̄ į̌ і́

    +

    The dot of soft dotted characters should disappear in other cases, for example: i̦̒ j̦̒ į̆ į̇ į̈ į̊ į̋ į̒ į̦̒ į̧̒ į̨̒ į̵̀ į̵́ į̵̂ į̵̃ į̵̄ į̵̆ į̵̇ į̵̈ į̵̊

    +

    Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Belarusian (Cyrl, 10,064,517 speakers), Dutch (Latn, 31,709,104 speakers).

    +

    Your font does not cover the following languages that require the soft-dotted feature: Avokaya (Latn, 100,000 speakers), Gulay (Latn, 250,478 speakers), Navajo (Latn, 166,319 speakers), Igbo (Latn, 27,823,640 speakers), Basaa (Latn, 332,940 speakers), Ejagham (Latn, 120,000 speakers), Ebira (Latn, 2,200,000 speakers), Koonzime (Latn, 40,000 speakers), Mango (Latn, 77,000 speakers), Nateni (Latn, 100,000 speakers), Lugbara (Latn, 2,200,000 speakers), Ma’di (Latn, 584,000 speakers), Kom (Latn, 360,685 speakers), Sar (Latn, 500,000 speakers), Dan (Latn, 1,099,244 speakers), Aghem (Latn, 38,843 speakers). [code: soft-dotted]

    +
+
+ + \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikdoodletriangles-report.json b/docs/fontbakery-reports/rubikdoodletriangles-report.json new file mode 100644 index 0000000..4fe3f58 --- /dev/null +++ b/docs/fontbakery-reports/rubikdoodletriangles-report.json @@ -0,0 +1 @@ +{"result": {"FAIL": 4, "INFO": 9, "PASS": 159, "SKIP": 64, "WARN": 11}, "sections": [{"checks": [{"description": "Fonts have equal codepoint coverage", "experimental": "Since 2023/Oct/13", "key": ["", "", []], "logs": [{"message": "All font files in this family have an equivalent encoded glyphset.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Ensure that all variable font files have the same set of axes and axis ranges.", "key": ["", "", []], "logs": [{"message": "Unfulfilled Conditions: VFs", "status": "SKIP", "traceback": null}], "rationale": "\n In order to facilitate the construction of intuitive and friendly user\n interfaces, all variable font files in a given family should have the same set\n of variation axes. Also, each axis must have a consistent setting of min/max\n value ranges accross all the files.\n ", "result": "SKIP"}, {"description": "All tabular figures must have the same width across the RIBBI-family.", "key": ["", "", []], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Tabular figures need to have the same metrics in all styles in order to allow\n tables to be set with proper typographic control, but to maintain the placement\n of decimals and numeric columns between rows.\n\n Here's a good explanation of this:\n https://www.typography.com/techniques/fonts-for-financials/#tabular-figs\n ", "result": "PASS"}, {"description": "Does font file include unacceptable control character glyphs?", "key": ["", "", []], "logs": [{"message": "Unacceptable control characters were not identified.", "status": "PASS", "traceback": null}], "rationale": "\n Use of some unacceptable control characters in the U+0000 - U+001F range can\n lead to rendering issues on some platforms.\n\n Acceptable control characters are defined as .null (U+0000) and\n CR (U+000D) for this test.\n ", "result": "PASS"}, {"description": "Ensure Italic styles have Roman counterparts.", "key": ["", "", []], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n For each font family on Google Fonts, every Italic style must have\n a Roman sibling.\n\n This kind of problem was first observed at [1] where the Bold style was\n missing but BoldItalic was included.\n\n [1] https://github.com/google/fonts/pull/1482\n ", "result": "PASS"}, {"description": "Check axis ordering on the STAT table.", "key": ["", "", []], "logs": [{"message": "This font does not have a STAT table: /home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf [code: missing-STAT]", "status": "SKIP", "traceback": null}, {"message": "From a total of 1 font files, 1 of them (100.00%) lack a STAT table.\n\n\tAnd these are the most common STAT axis orderings:\n\t [code: summary]", "status": "INFO", "traceback": null}], "rationale": "\n This is (for now) a merely informative check to detect what's the axis ordering\n declared on the STAT table of fonts in the Google Fonts collection.\n\n We may later update this to enforce some unified axis ordering scheme,\n yet to be determined.\n ", "result": "INFO"}, {"description": "Check README.md has a sample image.", "key": ["", "", []], "logs": [{"message": "Unfulfilled Conditions: readme_contents, readme_directory", "status": "SKIP", "traceback": null}], "rationale": "\n In order to showcase what a font family looks like, the project's README.md\n file should ideally include a sample image and highlight it in the upper\n portion of the document, no more than 10 lines away from the top of the file.\n ", "result": "SKIP"}, {"description": "Checking file is named canonically.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font filename is correct, \"RubikDoodleTriangles-Regular.ttf\".", "status": "PASS", "traceback": null}], "rationale": "\n A font's filename must be composed as \"-.ttf\":\n\n - Nunito-Regular.ttf\n\n - Oswald-BoldItalic.ttf\n\n\n Variable fonts must list the axis tags in alphabetical order in\n square brackets and separated by commas:\n\n - Roboto[wdth,wght].ttf\n\n - Familyname-Italic[wght].ttf\n ", "result": "PASS"}, {"description": "Does DESCRIPTION file contain broken links?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All links in the DESCRIPTION file look good!", "status": "PASS", "traceback": null}], "rationale": "\n The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font\n family webpage on the Google Fonts website. For that reason, all hyperlinks\n in it must be properly working.\n ", "result": "PASS"}, {"description": "URLs on DESCRIPTION file must not display http(s) prefix.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All good!", "status": "PASS", "traceback": null}], "rationale": "\n The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font\n family webpage on the Google Fonts website.\n\n Google Fonts has a content formatting policy for that snippet that expects the\n text content of anchors not to include the http:// or https:// prefixes.\n ", "result": "PASS"}, {"description": "Does DESCRIPTION file contain a upstream Git repo URL?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Found a git repo URL: https://github.com/NaN-xyz/Glyph-Filters [code: url-found]", "status": "INFO", "traceback": null}, {"message": "Found a git repo URL: https://github.com/NaN-xyz/Rubik-Filtered [code: url-found]", "status": "INFO", "traceback": null}, {"message": "Looks great!", "status": "PASS", "traceback": null}], "rationale": "\n The contents of the DESCRIPTION.en-us.html file are displayed on the\n Google Fonts website in the about section of each font family specimen page.\n\n Since all of the Google Fonts collection is composed of libre-licensed fonts,\n this check enforces a policy that there must be a hypertext link in that page\n directing users to the repository where the font project files are\n made available.\n\n Such hosting is typically done on sites like Github, Gitlab, GNU Savannah or\n any other git-based version control service.\n ", "result": "INFO"}, {"description": "Is this a proper HTML snippet?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/DESCRIPTION.en_us.html is a propper HTML file.", "status": "PASS", "traceback": null}], "rationale": "\n Sometimes people write malformed HTML markup. This check should ensure the\n file is good.\n\n Additionally, when packaging families for being pushed to the `google/fonts`\n git repo, if there is no DESCRIPTION.en_us.html file, some older versions of\n the `add_font.py` tool insert a placeholder description file which contains\n invalid html. This file needs to either be replaced with an existing\n description file or edited by hand.\n ", "result": "PASS"}, {"description": "DESCRIPTION.en_us.html must have more than 200 bytes.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "DESCRIPTION.en_us.html is larger than 200 bytes.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "DESCRIPTION.en_us.html should end in a linebreak.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": ":-)", "status": "PASS", "traceback": null}], "rationale": "\n Some older text-handling tools sometimes misbehave if the last line of data\n in a text file is not terminated with a newline character (also known as '\\n').\n\n We know that this is a very small detail, but for the sake of keeping all\n DESCRIPTION.en_us.html files uniformly formatted throughout the GFonts\n collection, we chose to adopt the practice of placing this final linebreak\n character on them.\n ", "result": "PASS"}, {"description": "Check METADATA.pb parse correctly.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb parsed successfuly.", "status": "PASS", "traceback": null}], "rationale": "\n The purpose of this check is to ensure that the METADATA.pb file is not\n malformed.\n ", "result": "PASS"}, {"description": "Font designer field in METADATA.pb must not be 'unknown'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font designer field is not 'unknown'.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font designer field in METADATA.pb must not contain 'Multiple designers'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good.", "status": "PASS", "traceback": null}], "rationale": "\n For a while the string \"Multiple designers\" was used as a placeholder on\n METADATA.pb files. We should replace all those instances with actual designer\n names so that proper credits are displayed on the Google Fonts family\n specimen pages.\n\n If there's more than a single designer, the designer names must be\n separated by commas.\n ", "result": "PASS"}, {"description": "Multiple values in font designer field in METADATA.pb must be separated by commas.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good.", "status": "PASS", "traceback": null}], "rationale": "\n We must use commas instead of forward slashes because the server-side code\n at the fonts.google.com directory will segment the string on the commas into\n a list of names and display the first item in the list as the\n \"principal designer\" while the remaining names are identified as \"contributors\".\n\n See eg https://fonts.google.com/specimen/Rubik\n ", "result": "PASS"}, {"description": "Does METADATA.pb copyright field contain broken links?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All links in the METADATA.pb file look good!", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Ensure METADATA.pb lists all font binaries.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n The set of font binaries available, except the ones on a \"static\" subdir,\n must match exactly those declared on the METADATA.pb file.\n\n Also, to avoid confusion, we expect that font files (other than statics)\n are not placed on subdirectories.\n ", "result": "PASS"}, {"description": "Ensure METADATA.pb category field is valid.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK!", "status": "PASS", "traceback": null}], "rationale": "\n There are only five acceptable values for the category field in a METADATA.pb\n file:\n\n - MONOSPACE\n\n - SANS_SERIF\n\n - SERIF\n\n - DISPLAY\n\n - HANDWRITING\n\n This check is meant to avoid typos in this field.\n ", "result": "PASS"}, {"description": "Checking OS/2 fsType does not impose restrictions.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 fsType is properly set to zero.", "status": "PASS", "traceback": null}], "rationale": "\n The fsType in the OS/2 table is a legacy DRM-related field. Fonts in the\n Google Fonts collection must have it set to zero (also known as\n \"Installable Embedding\"). This setting indicates that the fonts can be\n embedded in documents and permanently installed by applications on\n remote systems.\n\n More detailed info is available at:\n https://docs.microsoft.com/en-us/typography/opentype/spec/os2#fstype\n ", "result": "PASS"}, {"description": "Checking OS/2 achVendID.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx\n [code: unknown]", "status": "WARN", "traceback": null}], "rationale": "\n Microsoft keeps a list of font vendors and their respective contact info. This\n list is updated regularly and is indexed by a 4-char \"Vendor ID\" which is\n stored in the achVendID field of the OS/2 table.\n\n Registering your ID is not mandatory, but it is a good practice since some\n applications may display the type designer / type foundry contact info on some\n dialog and also because that info will be visible on Microsoft's website:\n\n https://docs.microsoft.com/en-us/typography/vendors/\n\n This check verifies whether or not a given font's vendor ID is registered in\n that list or if it has some of the default values used by the most common\n font editors.\n\n Each new FontBakery release includes a cached copy of that list of vendor IDs.\n If you registered recently, you're safe to ignore warnings emitted by this\n check, since your ID will soon be included in one of our upcoming releases.\n ", "result": "WARN"}, {"description": "Check Google Fonts glyph coverage.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Google Fonts expects that fonts in its collection support at least the minimal\n set of characters defined in the `GF-latin-core` glyph-set.\n ", "result": "PASS"}, {"description": "Check for METADATA subsets with zero support.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n This check ensures that the subsets specified on a METADATA.pb file are\n actually supported (even if only partially) by the font files.\n\n Subsets for which none of the codepoints are supported will cause the\n check to FAIL.\n ", "result": "PASS", "severity": 10}, {"description": "Check for codepoints not covered by METADATA subsets.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The following codepoints supported by the font are not covered by\n any subsets defined in the font's metadata file, and will never\n be served. You can solve this by either manually adding additional\n subset declarations to METADATA.pb, or by editing the glyphset\n definitions.\n\n * U+02C7 CARON: try adding one of: yi, canadian-aboriginal, tifinagh\n * U+02D8 BREVE: try adding one of: yi, canadian-aboriginal\n * U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal\n * U+02DB OGONEK: try adding one of: yi, canadian-aboriginal\n * U+02DD DOUBLE ACUTE ACCENT: not included in any glyphset definition\n * U+0306 COMBINING BREVE: try adding one of: tifinagh, old-permic\n * U+030A COMBINING RING ABOVE: try adding syriac\n * U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee\n * U+030C COMBINING CARON: try adding one of: tai-le, cherokee\n * U+0312 COMBINING TURNED COMMA ABOVE: not included in any glyphset definition\n * U+0326 COMBINING COMMA BELOW: not included in any glyphset definition\n * U+0327 COMBINING CEDILLA: not included in any glyphset definition\n * U+0328 COMBINING OGONEK: not included in any glyphset definition\n * U+0335 COMBINING SHORT STROKE OVERLAY: not included in any glyphset definition\n * U+0337 COMBINING SHORT SOLIDUS OVERLAY: not included in any glyphset definition\n * U+0338 COMBINING LONG SOLIDUS OVERLAY: not included in any glyphset definition\n * U+2021 DOUBLE DAGGER: try adding adlam\n * U+2030 PER MILLE SIGN: try adding adlam\n * U+2070 SUPERSCRIPT ZERO: not included in any glyphset definition\n * U+2075 SUPERSCRIPT FIVE: not included in any glyphset definition\n * U+2076 SUPERSCRIPT SIX: not included in any glyphset definition\n * U+2077 SUPERSCRIPT SEVEN: not included in any glyphset definition\n * U+2078 SUPERSCRIPT EIGHT: not included in any glyphset definition\n * U+2079 SUPERSCRIPT NINE: not included in any glyphset definition\n * U+207D SUPERSCRIPT LEFT PARENTHESIS: not included in any glyphset definition\n * U+207E SUPERSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition\n * U+2080 SUBSCRIPT ZERO: not included in any glyphset definition\n * U+2081 SUBSCRIPT ONE: not included in any glyphset definition\n * U+2082 SUBSCRIPT TWO: not included in any glyphset definition\n * U+2083 SUBSCRIPT THREE: not included in any glyphset definition\n * U+2084 SUBSCRIPT FOUR: not included in any glyphset definition\n * U+2085 SUBSCRIPT FIVE: not included in any glyphset definition\n * U+2086 SUBSCRIPT SIX: not included in any glyphset definition\n * U+2087 SUBSCRIPT SEVEN: not included in any glyphset definition\n * U+2088 SUBSCRIPT EIGHT: not included in any glyphset definition\n * U+2089 SUBSCRIPT NINE: not included in any glyphset definition\n * U+208D SUBSCRIPT LEFT PARENTHESIS: not included in any glyphset definition\n * U+208E SUBSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition\n * U+212E ESTIMATED SYMBOL: not included in any glyphset definition\n * U+2153 VULGAR FRACTION ONE THIRD: not included in any glyphset definition\n * U+2154 VULGAR FRACTION TWO THIRDS: not included in any glyphset definition\n * U+215B VULGAR FRACTION ONE EIGHTH: not included in any glyphset definition\n * U+215C VULGAR FRACTION THREE EIGHTHS: not included in any glyphset definition\n * U+215D VULGAR FRACTION FIVE EIGHTHS: not included in any glyphset definition\n * U+215E VULGAR FRACTION SEVEN EIGHTHS: not included in any glyphset definition\n * U+FB01 LATIN SMALL LIGATURE FI: not included in any glyphset definition\n * U+FB02 LATIN SMALL LIGATURE FL: not included in any glyphset definition\n\nOr you can add the above codepoints to one of the subsets supported by the font: `cyrillic`, `cyrillic-ext`, `hebrew`, `latin`, `latin-ext`, `math`, `menu`, `symbols` [code: unreachable-subsetting]", "status": "WARN", "traceback": null}], "rationale": "\n This check ensures that all encoded glyphs in the font are covered by a\n subset declared in the METADATA.pb. Google Fonts splits the font into\n a set of subset fonts based on the contents of the `subsets` field and\n the subset definitions in the `glyphsets` repository.\n\n Any encoded glyphs which are not by any of these subset definitions\n will not be served in the subsetted fonts, and so will be unreachable to\n the end user.\n ", "result": "WARN", "severity": 2}, {"description": "Substitute copyright, registered and trademark symbols in name table entries.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No need to substitute copyright, registered and trademark symbols in name table entries of this font.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check the OS/2 usWeightClass is appropriate for the font's best SubFamily name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 usWeightClass is good", "status": "PASS", "traceback": null}], "rationale": "\n Google Fonts expects variable fonts, static ttfs and static otfs to have\n differing OS/2 usWeightClass values.\n\n - For Variable Fonts, Thin-Black must be 100-900\n\n - For static ttfs, Thin-Black can be 100-900 or 250-900\n\n - For static otfs, Thin-Black must be 250-900\n\n If static otfs are set lower than 250, text may appear blurry in\n legacy Windows applications.\n\n Glyphsapp users can change the usWeightClass value of an instance by adding\n a 'weightClass' customParameter.\n ", "result": "PASS"}, {"description": "Check font has a license.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Found license at '/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/OFL.txt'", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check license file has good copyright string.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "looks good", "status": "PASS", "traceback": null}], "rationale": "\n An OFL.txt file's first line should be the font copyright e.g:\n \"Copyright 2019 The Montserrat Project Authors\n (https://github.com/julietaula/montserrat)\"\n ", "result": "PASS", "severity": 10}, {"description": "Check OFL body text is correct.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OFL license body text is correct", "status": "PASS", "traceback": null}], "rationale": "\n Check OFL body text is correct.\n Often users will accidently delete parts of the body text.\n ", "result": "PASS", "severity": 10}, {"description": "Check copyright namerecords match license file.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Licensing entry on name table is correctly set.", "status": "PASS", "traceback": null}], "rationale": "\n A known licensing description must be provided in the NameID 14\n (LICENSE DESCRIPTION) entries of the name table.\n\n The source of truth for this check (to determine which license is in use) is\n a file placed side-by-side to your font project including the licensing terms.\n\n Depending on the chosen license, one of the following string snippets is\n expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the\n name table:\n\n - \"This Font Software is licensed under the SIL Open Font License, Version 1.1.\n This license is available with a FAQ at: https://scripts.sil.org/OFL\"\n\n - \"Licensed under the Apache License, Version 2.0\"\n\n - \"Licensed under the Ubuntu Font Licence 1.0.\"\n\n\n Currently accepted licenses are Apache or Open Font License. For a small set\n of legacy families the Ubuntu Font License may be acceptable as well.\n\n When in doubt, please choose OFL for new font projects.\n ", "result": "PASS"}, {"description": "License URL matches License text on name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has a valid license URL in NAME table.", "status": "PASS", "traceback": null}], "rationale": "\n A known license URL must be provided in the NameID 14 (LICENSE INFO URL)\n entry of the name table.\n\n The source of truth for this check is the licensing text found on the NameID 13\n entry (LICENSE DESCRIPTION).\n\n The string snippets used for detecting licensing terms are:\n\n - \"This Font Software is licensed under the SIL Open Font License, Version 1.1.\n This license is available with a FAQ at: https://scripts.sil.org/OFL\"\n\n - \"Licensed under the Apache License, Version 2.0\"\n\n - \"Licensed under the Ubuntu Font Licence 1.0.\"\n\n\n Currently accepted licenses are Apache or Open Font License. For a small set of\n legacy families the Ubuntu Font License may be acceptable as well.\n\n When in doubt, please choose OFL for new font projects.\n ", "result": "PASS"}, {"description": "Description strings in the name table must not exceed 200 characters.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All description name records have reasonably small lengths.", "status": "PASS", "traceback": null}], "rationale": "\n An old FontLab version had a bug which caused it to store copyright notices\n in nameID 10 entries.\n\n In order to detect those and distinguish them from actual legitimate usage of\n this name table entry, we expect that such strings do not exceed a reasonable\n length of 200 chars.\n\n Longer strings are likely instances of the FontLab bug.\n ", "result": "PASS"}, {"description": "Show hinting filesize impact.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Hinting filesize impact:\n\n | | /home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf |\n |:------------- | ---------------:|\n | Dehinted Size | 1.3Mb |\n | Hinted Size | 1.3Mb |\n | Increase | 24 bytes |\n | Change | 0.0 % |\n [code: size-impact]", "status": "INFO", "traceback": null}], "rationale": "\n This check is merely informative, displaying and useful comparison of filesizes\n of hinted versus unhinted font files.\n ", "result": "INFO"}, {"description": "Ensure files are not too large.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font file is 1.3Mb; ideally it should be less than 1.0Mb [code: large-font]", "status": "WARN", "traceback": null}], "rationale": "\n Serving extremely large font files on Google Fonts causes usability issues.\n This check ensures that file sizes are reasonable.\n ", "result": "WARN", "severity": 10}, {"description": "Version format is correct in 'name' table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Version format in NAME table entries is correct.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font has ttfautohint params?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font appears to our heuristic as not hinted using ttfautohint. [code: not-hinted]", "status": "SKIP", "traceback": null}], "result": "SKIP"}, {"description": "Font has old ttfautohint applied?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 2.201'] [code: version-not-detected]", "status": "INFO", "traceback": null}], "rationale": "\n Check if font has been hinted with an outdated version of ttfautohint.\n ", "result": "INFO"}, {"description": "EPAR table present in font?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "EPAR table not present in font. To learn more see https://github.com/fonttools/fontbakery/issues/818 [code: lacks-EPAR]", "status": "INFO", "traceback": null}], "rationale": "\n The EPAR table is/was a way of expressing common licensing permissions and\n restrictions in metadata; while almost nothing supported it, Dave Crossland\n wonders that adding it to everything in Google Fonts could help make it\n more popular.\n\n More info is available at:\n https://davelab6.github.io/epar/\n ", "result": "INFO", "severity": 1}, {"description": "Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "These are the ppm ranges declared on the gasp table:\n\nPPM <= 65535:\n\tflag = 0x0F\n\t- Use grid-fitting\n\t- Use grayscale rendering\n\t- Use gridfitting with ClearType symmetric smoothing\n\t- Use smoothing along multiple axes with ClearType\u00ae\n [code: ranges]", "status": "INFO", "traceback": null}, {"message": "The 'gasp' table is correctly set, with one gaspRange:value of 0xFFFF:0x0F.", "status": "PASS", "traceback": null}], "rationale": "\n Traditionally version 0 'gasp' tables were set so that font sizes below 8 ppem\n had no grid fitting but did have antialiasing. From 9-16 ppem, just grid\n fitting.\n And fonts above 17ppem had both antialiasing and grid fitting toggled on.\n The use of accelerated graphics cards and higher resolution screens make this\n approach obsolete. Microsoft's DirectWrite pushed this even further with much\n improved rendering built into the OS and apps.\n\n In this scenario it makes sense to simply toggle all 4 flags ON for all font\n sizes.\n ", "result": "INFO"}, {"description": "Make sure family name does not begin with a digit.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font family name first character is not a digit.", "status": "PASS", "traceback": null}], "rationale": "\n Font family names which start with a numeral are often not discoverable\n in Windows applications.\n ", "result": "PASS"}, {"description": "Are there non-ASCII characters in ASCII-only NAME table entries?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "None of the ASCII-only NAME table entries contain non-ASCII characteres.", "status": "PASS", "traceback": null}], "rationale": "\n The OpenType spec requires ASCII for the POSTSCRIPT_NAME (nameID 6).\n\n For COPYRIGHT_NOTICE (nameID 0) ASCII is required because that string should be\n the same in CFF fonts which also have this requirement in the OpenType spec.\n\n Note:\n A common place where we find non-ASCII strings is on name table entries\n with NameID > 18, which are expressly for localising the ASCII-only IDs\n into Hindi / Arabic / etc.\n ", "result": "PASS"}, {"description": "METADATA.pb: check if fonts field only has unique \"full_name\" values.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb \"fonts\" field only has unique \"full_name\" values.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: check if fonts field only contains unique style:weight pairs.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb \"fonts\" field only has unique style:weight pairs.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb license is \"APACHE2\", \"UFL\" or \"OFL\"?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font license is declared in METADATA.pb as \"OFL\"", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb should contain at least \"menu\" and \"latin\" subsets.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb contains \"menu\" and \"latin\" subsets.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb subsets should be alphabetically ordered.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb subsets are sorted in alphabetical order.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check METADATA.pb includes production subsets.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: listed_on_gfonts_api", "status": "SKIP", "traceback": null}], "rationale": "\n Check METADATA.pb file includes the same subsets as the family in production.\n ", "result": "SKIP"}, {"description": "METADATA.pb: Copyright notice is the same in all fonts?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Copyright is consistent across family", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check that METADATA.pb family values are all the same.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb: Family name is the same in all metadata \"fonts\" items.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: According to Google Fonts standards, families should have a Regular style.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Family has a Regular style.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Regular should be 400.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Regular has weight = 400.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checks METADATA.pb font.name field matches family name declared on the name table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Family name \"Rubik Doodle Triangles\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Postscript name \"RubikDoodleTriangles-Regular\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.full_name value matches fullname declared on the name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font fullname \"Rubik Doodle Triangles Regular\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.name value should be same as the family name declared on the name table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK: Family name \"Rubik Doodle Triangles\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "rationale": "\n This check ensures consistency between the font name declared on the name table\n and the contents of the METADATA.pb file.\n ", "result": "PASS"}, {"description": "METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font fields \"full_name\" and \"post_script_name\" have equivalent values.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.filename and font.post_script_name fields have equivalent values?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font fields \"filename\" and \"post_script_name\" have equivalent values.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.name field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font.name field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.full_name field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font.full_name field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.filename field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb filename field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.post_script_name field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb postScriptName field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check name ID 25 to end with \"Italic\" for Italic VFs.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Not an Italic VF.", "status": "PASS", "traceback": null}], "rationale": "\n Due to a bug in (at least) Adobe Indesign, name ID 25\n needs to be different for Italic VFs than their Upright counterparts.\n Google Fonts chooses to append \"Italic\" here.\n ", "result": "PASS"}, {"description": "Copyright notices match canonical pattern in METADATA.pb", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb copyright string is good", "status": "PASS", "traceback": null}], "rationale": "\n The expected pattern for the copyright string adheres to the following rules:\n\n * It must say \"Copyright\" followed by a 4 digit year (optionally followed by\n a hyphen and another 4 digit year)\n\n * Then it must say \"The Project Authors\"\n\n * And within parentheses, a URL for a git repository must be provided\n\n * The check is case insensitive and does not validate whether the familyname\n is correct, even though we'd expect it is (and we may soon update the check\n to validate that aspect as well!)\n\n\n Here is an example of a valid copyright string:\n\n \"Copyright 2017 The Archivo Black Project Authors\n (https://github.com/Omnibus-Type/ArchivoBlack)\"\n ", "result": "PASS"}, {"description": "Copyright notices match canonical pattern in fonts", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Name Table entry: Copyright field 'Copyright 2020 The Rubik Filtered Project Authors (https://github.com/NaN-xyz/Rubik-Filtered)' matches canonical pattern.", "status": "PASS", "traceback": null}, {"message": "Name table copyright entries are good", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Copyright notice on METADATA.pb should not contain 'Reserved Font Name'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb copyright field does not contain \"Reserved Font Name\".", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Copyright notice shouldn't exceed 500 chars.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Copyright notice string is shorter than 500 chars.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Font filenames match font.filename entries?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Filenames in METADATA.pb look good.", "status": "PASS", "traceback": null}], "rationale": "\n Note:\n This check only looks for files in the current directory.\n\n Font files in subdirectories are checked by these other two checks:\n - com.google.fonts/check/metadata/undeclared_fonts\n - com.google.fonts/check/repo/vf_has_static_fonts\n\n We may want to merge them all into a single check.\n ", "result": "PASS"}, {"description": "METADATA.pb font.style \"italic\" matches font internals?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This check only applies to italic fonts.", "status": "SKIP", "traceback": null}], "result": "SKIP"}, {"description": "METADATA.pb font.style \"normal\" matches font internals?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font.style \"normal\" matches font internals.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.name and font.full_name fields match the values declared on the name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb familyname and fullName fields match corresponding name table entries.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Check font name is the same as family name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font name is the same as family name.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Check that font weight has a canonical value.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font weight has a canonical value.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check METADATA.pb font weights are correct.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 usWeightClass or wght axis value matches weight specified at METADATA.pb", "status": "PASS", "traceback": null}], "rationale": "\n Check METADATA.pb font weights are correct.\n\n For static fonts, the metadata weight should be the same as the static font's\n OS/2 usWeightClass.\n\n For variable fonts, the weight value should be 400 if the font's wght axis range\n includes 400, otherwise it should be the value closest to 400.\n ", "result": "PASS"}, {"description": "METADATA.pb weight matches postScriptName for static fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Weight value matches postScriptName.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Font styles are named canonically?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font styles are named canonically.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Check URL on copyright string is the same as in repository_url field.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Repository URL is https://github.com/NaN-xyz/Rubik-Filtered\n\nBut: OFL text has 'https:/' and HTML description has 'github.com/NaN-xyz/Glyph-Filters'\n [code: mismatch]", "status": "FAIL", "traceback": null}], "rationale": "\n Sometimes, perhaps due to copy-pasting, projects may declare different URLs\n between the font.coyright and the family.sources.repository_url fields.\n ", "result": "FAIL"}, {"description": "METADATA.pb: Check for primary_script", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Try to guess font's primary script and see if that's set in METADATA.pb.\n This is an educated guess based on the number of glyphs per script in the font\n and should be taken with caution.\n ", "result": "PASS"}, {"description": "Shapes languages in all GF glyphsets.", "experimental": "Since 2023/Nov/02", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "GF_Latin_Core glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| haw_Latn (Hawaiian) | Some base glyphs were missing: \u02bb |\n| ^ | Shaper produced a .notdef |\n| mh_Latn (Marshallese) | Some base glyphs were missing: \u1e36, \u1e37, \u1e42, \u1e43, \u1e46, \u1e47, \u1ecc, \u1ecd |\n| ^ | Some mark glyphs were missing: \u25cc\u0323 |\n| ^ | Shaper produced a .notdef |\n| scn_Latn (Sicilian) | Some base glyphs were missing: \u1e0c, \u1e0d |\n| ^ | Shaper produced a .notdef |\n| teo_Latn (Teso) | Some base glyphs were missing: \u0186, \u0190, \u0197, \u0244, \u0254, \u025b, \u0268, \u0289, \u1d43, \u1d49, \u1d4b, \u1d52, \u1d53, \u1d58, \u1da4, \u1db6, \u2071 |\n| ^ | Shaper produced a .notdef |\n\n [code: failed-language-shaping]", "status": "FAIL", "traceback": null}, {"message": "GF_Latin_Core glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| lg_Latn (Ganda) | No variant glyphs were found for Eng |\n| dyo_Latn (Jola-Fonyi) | No variant glyphs were found for Eng |\n| ny_Latn (Nyanja) | No variant glyphs were found for Eng |\n| wo_Latn (Wolof) | No variant glyphs were found for Eng |\n\n [code: warning-language-shaping]", "status": "WARN", "traceback": null}, {"message": "GF_Cyrillic_Plus glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| tg_Cyrl (Tajik) | Some base glyphs were missing: \u04b3 |\n| ^ | Shaper produced a .notdef |\n| uz_Cyrl (Uzbek (Cyrillic)) | Some base glyphs were missing: \u04b3 |\n| ^ | Shaper produced a .notdef |\n\n [code: failed-language-shaping]", "status": "FAIL", "traceback": null}, {"message": "GF_Cyrillic_Plus glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| ku_Cyrl (Kurdish) | No exemplar glyphs were defined for language Kurdish |\n\n [code: warning-language-shaping]", "status": "WARN", "traceback": null}], "rationale": "\n This check uses a heuristic to determine which GF glyphsets a font supports.\n Then it checks the font for correct shaping behaviour for all languages in\n those glyphsets.\n ", "result": "FAIL"}, {"description": "Stricter unitsPerEm criteria for Google Fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font em size is good (unitsPerEm = 1000).", "status": "PASS", "traceback": null}], "rationale": "\n Even though the OpenType spec allows unitsPerEm to be any value between 16\n and 16384, the Google Fonts project aims at a narrower set of reasonable values.\n\n Values above 4000 would likely result in unreasonable\n filesize increases.\n ", "result": "PASS"}, {"description": "Glyphs are similiar to Google Fonts version?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: api_gfonts_ttFont", "status": "SKIP", "traceback": null}], "result": "SKIP"}, {"description": "Checking direction of slnt axis angles", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n The 'slnt' axis values are defined as negative values for a clockwise (right)\n lean, and positive values for counter-clockwise lean. This is counter-intuitive\n for many designers who are used to think of a positive slant as a lean to\n the right.\n\n This check ensures that the slant axis direction is consistent with the specs.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_slnt\n ", "result": "SKIP"}, {"description": "Check font names are correct", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font names are good:\n\n| nameID | current | expected |\n| :--- | :--- | :--- |\n| Family Name | Rubik Doodle Triangles | Rubik Doodle Triangles |\n| Subfamily Name | Regular | Regular |\n| Full Name | Rubik Doodle Triangles Regular | Rubik Doodle Triangles Regular |\n| Postscript Name | RubikDoodleTriangles-Regular | RubikDoodleTriangles-Regular |", "status": "PASS", "traceback": null}], "rationale": "\n Google Fonts has several rules which need to be adhered to when\n setting a font's name table. Please read:\n https://googlefonts.github.io/gf-guide/statics.html#supported-styles\n https://googlefonts.github.io/gf-guide/statics.html#style-linking\n https://googlefonts.github.io/gf-guide/statics.html#unsupported-styles\n https://googlefonts.github.io/gf-guide/statics.html#single-weight-families\n ", "result": "PASS"}, {"description": "Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Copyright field for this font on METADATA.pb matches copyright notice entries on the name table.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font has all mandatory 'name' table entries?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font contains values for all mandatory name table entries.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Length of copyright notice must not exceed 500 characters.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All copyright notice name entries on the 'name' table are shorter than 500 characters.", "status": "PASS", "traceback": null}], "rationale": "\n This is an arbitrary max length for the copyright notice field of the name\n table. We simply don't want such notices to be too long. Typically such notices\n are actually much shorter than this with a length of roughly 70 or 80\n characters.\n ", "result": "PASS"}, {"description": "Check for font-v versioning.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Version string is: \"Version 2.201\"\nThe version string must ideally include a git commit hash and either a \"dev\" or a \"release\" suffix such as in the example below:\n\"Version 1.3; git-0d08353-release\" [code: bad-format]", "status": "INFO", "traceback": null}], "rationale": "\n The git sha1 tagging and dev/release features of Source Foundry `font-v` tool\n are awesome and we would love to consider upstreaming the approach into\n fontmake someday. For now we only emit an INFO if a given font does not yet\n follow the experimental versioning style, but at some point we may start\n enforcing it.\n ", "result": "INFO"}, {"description": "Check glyphs do not have components which are themselves components.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyphs do not contain nested components.", "status": "PASS", "traceback": null}], "rationale": "\n There have been bugs rendering variable fonts with nested components.\n Additionally, some static fonts with nested components have been reported\n to have rendering and printing issues.\n\n For more info, see:\n * https://github.com/fonttools/fontbakery/issues/2961\n * https://github.com/arrowtype/recursive/issues/412\n ", "result": "PASS"}, {"description": "Check a static ttf can be generated from a variable font.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Google Fonts may serve static fonts which have been generated from variable\n fonts. This test will attempt to generate a static ttf using fontTool's\n varLib mutator.\n\n The target font will be the mean of each axis e.g:\n\n ## VF font axes\n\n - min weight, max weight = 400, 800\n\n - min width, max width = 50, 100\n\n ## Target Instance\n\n - weight = 600\n\n - width = 75\n ", "result": "SKIP"}, {"description": "Check that variable fonts have an HVAR table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Not having a HVAR table can lead to costly text-layout operations on some\n platforms, which we want to avoid.\n\n So, all variable fonts on the Google Fonts collection should have an HVAR\n with valid values.\n\n More info on the HVAR table can be found at:\n https://docs.microsoft.com/en-us/typography/opentype/spec/otvaroverview#variation-data-tables-and-miscellaneous-requirements\n ", "result": "SKIP"}, {"description": "Font enables smart dropout control in \"prep\" table instructions?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "'prep' table contains instructions enabling smart dropout control.", "status": "PASS", "traceback": null}], "rationale": "\n This setup is meant to ensure consistent rendering quality for fonts across\n all devices (with different rendering/hinting capabilities).\n\n Below is the snippet of instructions we expect to see in the fonts:\n B8 01 FF PUSHW 0x01FF\n 85 SCANCTRL (unconditinally turn on\n dropout control mode)\n B0 04 PUSHB 0x04\n 8D SCANTYPE (enable smart dropout control)\n\n \"Smart dropout control\" means activating rules 1, 2 and 5:\n Rule 1: If a pixel's center falls within the glyph outline,\n that pixel is turned on.\n Rule 2: If a contour falls exactly on a pixel's center,\n that pixel is turned on.\n Rule 5: If a scan line between two adjacent pixel centers\n (either vertical or horizontal) is intersected\n by both an on-Transition contour and an off-Transition\n contour and neither of the pixels was already turned on\n by rules 1 and 2, turn on the pixel which is closer to\n the midpoint between the on-Transition contour and\n off-Transition contour. This is \"Smart\" dropout control.\n\n For more detailed info (such as other rules not enabled in this snippet),\n please refer to the TrueType Instruction Set documentation.\n ", "result": "PASS"}, {"description": "There must not be VTT Talk sources in the font.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There are no tables with VTT Talk sources embedded in the font.", "status": "PASS", "traceback": null}], "rationale": "\n The goal here is to reduce filesizes and improve pageloading when dealing\n with webfonts.\n\n The VTT Talk sources are not necessary at runtime and endup being just dead\n weight when left embedded in the font binaries. The sources should be kept on\n the project files but stripped out when building release binaries.\n ", "result": "PASS"}, {"description": "Are there unwanted Apple tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There are no unwanted AAT tables.", "status": "PASS", "traceback": null}], "rationale": "\n Apple's TrueType reference manual [1] describes SFNT tables not in the\n Microsoft OpenType specification [2] and these can sometimes sneak into final\n release files, but Google Fonts should only have OpenType tables.\n\n [1] https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6.html\n [2] https://docs.microsoft.com/en-us/typography/opentype/spec/\n ", "result": "PASS"}, {"description": "Check a font's STAT table contains compulsory Axis Values.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check a font's STAT table contains compulsory Axis Values which exist\n in the Google Fonts Axis Registry.\n\n We cannot determine what Axis Values the user will set for axes such as\n opsz, GRAD since these axes are unique for each font so we'll skip them.\n ", "result": "SKIP"}, {"description": "Check variable font instances", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check a font's fvar instance coordinates comply with our guidelines:\n https://googlefonts.github.io/gf-guide/variable.html#fvar-instances\n ", "result": "SKIP"}, {"description": "All name entries referenced by fvar instances exist on the name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n The purpose of this check is to make sure that all name entries referenced\n by variable font instances do exist in the name table.\n ", "result": "SKIP"}, {"description": "PPEM must be an integer on hinted fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_hinted", "status": "SKIP", "traceback": null}], "rationale": "\n Hinted fonts must have head table flag bit 3 set.\n\n Per https://docs.microsoft.com/en-us/typography/opentype/spec/head,\n bit 3 of Head::flags decides whether PPEM should be rounded. This bit should\n always be set for hinted fonts.\n\n Note:\n Bit 3 = Force ppem to integer values for all internal scaler math;\n May use fractional ppem sizes if this bit is clear;\n ", "result": "SKIP"}, {"description": "Are there caret positions declared for every ligature?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n All ligatures in a font must have corresponding caret (text cursor) positions\n defined in the GDEF table, otherwhise, users may experience issues with\n caret rendering.\n\n If using GlyphsApp or UFOs, ligature carets can be defined as anchors with\n names starting with 'caret_'. These can be compiled with fontmake as of\n version v2.4.0.\n ", "result": "PASS"}, {"description": "Is there kerning info for non-ligated sequences?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "GPOS table lacks kerning info for the following non-ligated sequences:\n\n\t- f + f\n\n\t- f + i\n\n\t- i + f\n\n\t- f + l\n\n\t- l + f\n\n\t- i + l [code: lacks-kern-info]", "status": "WARN", "traceback": null}], "rationale": "\n Fonts with ligatures should have kerning on the corresponding non-ligated\n sequences for text where ligatures aren't used\n (eg https://github.com/impallari/Raleway/issues/14).\n ", "result": "WARN"}, {"description": "Combined length of family and style must not exceed 27 characters.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The combined length of family and style exceeds 27 chars in the following 'WINDOWS' entries:\n FONT_FAMILY_NAME = 'Rubik Doodle Triangles' / SUBFAMILY_NAME = 'Regular'\n\nPlease take a look at the conversation at https://github.com/fonttools/fontbakery/issues/2179 in order to understand the reasoning behind these name table records max-length criteria. [code: too-long]", "status": "WARN", "traceback": null}], "rationale": "\n According to a GlyphsApp tutorial [1], in order to make sure all versions of\n Windows recognize it as a valid font file, we must make sure that the\n concatenated length of the familyname (NameID.FONT_FAMILY_NAME) and\n style (NameID.FONT_SUBFAMILY_NAME) strings in the name table do not\n exceed 20 characters.\n\n After discussing the problem in more detail at FontBakery issue #2179 [2] we\n decided that allowing up to 27 chars would still be on the safe side, though.\n\n [1] https://glyphsapp.com/tutorials/multiple-masters-part-3-setting-up-instances\n [2] https://github.com/fonttools/fontbakery/issues/2179\n ", "result": "WARN"}, {"description": "Name table entries should not contain line-breaks.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Name table entries are all single-line (no line-breaks found).", "status": "PASS", "traceback": null}], "rationale": "\n There are some entries on the name table that may include more than one line\n of text. The Google Fonts team, though, prefers to keep the name table entries\n short and simple without line breaks.\n\n For instance, some designers like to include the full text of a font license in\n the \"copyright notice\" entry, but for the GFonts collection this entry should\n only mention year, author and other basic info in a manner enforced by\n com.google.fonts/check/font_copyright\n ", "result": "PASS"}, {"description": "Name table strings must not contain the string 'Reserved Font Name'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "None of the name table strings contain \"Reserved Font Name\".", "status": "PASS", "traceback": null}], "rationale": "\n Some designers adopt the \"Reserved Font Name\" clause of the OFL license. This\n means that the original author reserves the rights to the family name and other\n people can only distribute modified versions using a different family name.\n\n Google Fonts published updates to the fonts in the collection in order to fix\n issues and/or implement further improvements to the fonts. It is important to\n keep the family name so that users of the webfonts can benefit from the updates.\n Since it would forbid such usage scenario, all families in the GFonts collection\n are required to not adopt the RFN clause.\n\n This check ensures \"Reserved Font Name\" is not mentioned in the name table.\n ", "result": "PASS"}, {"description": "Check family name for GF Guide compliance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font name looks good.", "status": "PASS", "traceback": null}], "rationale": "\n Checks the family name for compliance with the Google Fonts Guide.\n https://googlefonts.github.io/gf-guide/onboarding.html#new-fonts\n\n If you want to have your family name added to the CamelCase\n exceptions list, please submit a pull request to the\n camelcased_familyname_exceptions.txt file.\n\n Similarly, abbreviations can be submitted to the\n abbreviations_familyname_exceptions.txt file.\n\n These are located in the Lib/fontbakery/data/googlefonts/ directory\n of the FontBakery source code currently hosted at\n https://github.com/fonttools/fontbakery/\n ", "result": "PASS"}, {"description": "Directory name in GFonts repo structure must match NameID 1 of the regular.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "A static fonts directory, if present, must contain manually hinted fonts", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Variable font family directories kept in the google/fonts git repo may include\n a static/ subdir containing static fonts, if manual hinting is used on\n these fonts. Otherwise, the directory should be removed.\n ", "result": "PASS"}, {"description": "A font repository should not include FontBakery report files", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n A FontBakery report is ephemeral and so should be used for posting issues on a\n bug-tracker instead of being hosted in the font project repository.\n ", "result": "PASS"}, {"description": "Check upstream.yaml file contains all required fields", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The upstream.yaml file contains all necessary fields", "status": "PASS", "traceback": null}], "rationale": "\n If a family has been pushed using the gftools packager, we must check that all\n the required fields in the upstream.yaml file have been populated.\n ", "result": "PASS", "severity": 10}, {"description": "A font repository should not include ZIP files", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Sometimes people check in ZIPs into their font project repositories. While we\n accept the practice of checking in binaries, we believe that a ZIP is a step\n too far ;)\n\n Note: a source purist position is that only source files and build scripts\n should be checked in.\n ", "result": "PASS"}, {"description": "Check font follows the Google Fonts vertical metric schema", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The sum of hhea.ascender + abs(hhea.descender) + hhea.lineGap is 1185 when it should be at least 1200 [code: bad-hhea-range]", "status": "FAIL", "traceback": null}], "rationale": "\n This check generally enforces Google Fonts\u2019 vertical metrics specifications.\n In particular:\n * lineGap must be 0\n * Sum of hhea ascender + abs(descender) + linegap must be\n between 120% and 200% of UPM\n * Warning if sum is over 150% of UPM\n\n The threshold levels 150% (WARN) and 200% (FAIL) are somewhat arbitrarily chosen\n and may hint at a glaring mistake in the metrics calculations or UPM settings.\n\n Our documentation includes further information:\n https://github.com/googlefonts/gf-docs/tree/main/VerticalMetrics\n ", "result": "FAIL"}, {"description": "Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: regular_remote_style", "status": "SKIP", "traceback": null}], "rationale": "\n If the family already exists on Google Fonts, we need to ensure that the\n checked family's vertical metrics are similar. This check will test the\n following schema which was outlined in Font Bakery issue #1162 [1]:\n\n - The family should visually have the same vertical metrics as the Regular\n style hosted on Google Fonts.\n\n - If the family on Google Fonts has differing hhea and typo metrics, the family\n being checked should use the typo metrics for both the hhea and typo entries.\n\n - If the family on Google Fonts has use typo metrics not enabled and the family\n being checked has it enabled, the hhea and typo metrics should use the family\n on Google Fonts winAscent and winDescent values.\n\n - If the upms differ, the values must be scaled so the visual appearance is\n the same.\n\n [1] https://github.com/fonttools/fontbakery/issues/1162\n ", "result": "SKIP"}, {"description": "Check font follows the Google Fonts CJK vertical metric schema", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cjk_font", "status": "SKIP", "traceback": null}], "rationale": "\n CJK fonts have different vertical metrics when compared to Latin fonts.\n We follow the schema developed by dr Ken Lunde for Source Han Sans and\n the Noto CJK fonts.\n\n Our documentation includes further information:\n https://github.com/googlefonts/gf-docs/tree/main/Spec#cjk-vertical-metrics\n ", "result": "SKIP"}, {"description": "Check if the vertical metrics of a CJK family are similar to the same family hosted on Google Fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cjk_font, regular_remote_style", "status": "SKIP", "traceback": null}], "rationale": "\n Check CJK family has the same vertical metrics as the same family\n hosted on Google Fonts.\n ", "result": "SKIP"}, {"description": "Does the font contain less than 150 CJK characters?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_claiming_to_be_cjk_font", "status": "SKIP", "traceback": null}], "rationale": "\n Kana has 150 characters and it's the smallest CJK writing system.\n\n If a font contains less CJK glyphs than this writing system, we inform the\n user that some glyphs may be encoded incorrectly.\n ", "result": "SKIP"}, {"description": "Check variable font instances don't have duplicate names", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n This check's purpose is to detect duplicate named instances names in a\n given variable font.\n Repeating instance names may be the result of instances for several VF axes\n defined in `fvar`, but since currently only weight+italic tokens are allowed\n in instance names as per GF specs, they ended up repeating.\n Instead, only a base set of fonts for the most default representation of the\n family can be defined through instances in the `fvar` table, all other\n instances will have to be left to access through the `STAT` table.\n ", "result": "SKIP"}, {"description": "Ensure VFs do not contain the ital axis.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n The 'ital' axis is not supported yet in Google Chrome.\n\n For the time being, we need to ensure that VFs do not contain this axis.\n Once browser support is better, we can deprecate this check.\n\n For more info regarding browser support, see:\n https://arrowtype.github.io/vf-slnt-test/\n ", "result": "SKIP"}, {"description": "Ensure VFs with duplexed axes do not vary horizontal advance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Certain axes, such as grade (GRAD) or roundness (ROND), should not\n change any advanceWidth or kerning data across the font's design space.\n This is because altering the advance width of glyphs can cause text reflow.\n ", "result": "SKIP"}, {"description": "Validate METADATA.pb axes values are within gf_axisregistry bounds.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Each axis range in a METADATA.pb file must be registered, and within the bounds\n of the axis definition in the Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n ", "result": "SKIP"}, {"description": "Validate METADATA.pb axes tags are defined in gf_axisregistry.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Ensure all axes in a METADATA.pb file are registered in the\n Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n\n Why does Google Fonts have its own Axis Registry?\n\n We support a superset of the OpenType axis registry axis set, and use\n additional metadata for each axis. Axes present in a font file but not in this\n registry will not function via our API. No variable font is expected to\n support all of the axes here.\n\n Any font foundry or distributor library that offers variable fonts has a\n implicit, latent, de-facto axis registry, which can be extracted by scanning\n the library for axes' tags, labels, and min/def/max values. While in 2016\n Microsoft originally offered to include more axes in the OpenType 1.8\n specification (github.com/microsoft/OpenTypeDesignVariationAxisTags), as of\n August 2020, this effort has stalled. We hope more foundries and distributors\n will publish documents like this that make their axes explicit, to encourage\n of adoption of variable fonts throughout the industry, and provide source\n material for a future update to the OpenType specification's axis registry.\n ", "result": "SKIP"}, {"description": "Validate defaults on fvar table match registered fallback names in GFAxisRegistry.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check that axis defaults have a corresponding fallback name registered at the\n Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n\n This is necessary for the following reasons:\n\n To get ZIP files downloads on Google Fonts to be accurate \u2014 otherwise the\n chosen default font is not generated. The Newsreader family, for instance, has\n a default value on the 'opsz' axis of 16pt. If 16pt was not a registered\n fallback position, then the ZIP file would instead include another position\n as default (such as 14pt).\n\n For the Variable fonts to display the correct location on the specimen page.\n\n For VF with no weight axis to be displayed at all. For instance, Ballet, which\n has no weight axis, was not appearing in sandbox because default position on\n 'opsz' axis was 16pt, and it was not yet a registered fallback positon.\n ", "result": "SKIP"}, {"description": "Validate STAT particle names and values match the fallback names in GFAxisRegistry.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check that particle names and values on STAT table match the fallback names\n in each axis entry at the Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n ", "result": "SKIP"}, {"description": "Validate VF axes match the ones declared on METADATA.pb.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n All font variation axes present in the font files must be properly declared\n on METADATA.pb so that they can be served by the GFonts API.\n ", "result": "SKIP"}, {"description": "Ensure METADATA.pb does not use escaped strings.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n In some cases we've seen designer names and other fields with escaped strings\n in METADATA files (such as \"Juli\\303\\241n\").\n\n Nowadays the strings can be full unicode strings (such as \"Juli\u00e1n\") and do\n not need escaping.\n\n Escaping quotes or double-quotes is fine, though.\n ", "result": "PASS"}, {"description": "METADATA.pb: Designers are listed correctly on the Google Fonts catalog?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Designer Luke Prowse still does not have an avatar image. Please provide one. [code: missing-avatar]", "status": "FAIL", "traceback": null}], "rationale": "\n Google Fonts has a catalog of designers.\n\n This check ensures that the online entries of the catalog can be found based\n on the designer names listed on the METADATA.pb file.\n\n It also validates the URLs and file formats are all correctly set.\n ", "result": "FAIL"}, {"description": "Ensure variable fonts include an avar table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Most variable fonts should include an avar table to correctly define\n axes progression rates.\n\n For example, a weight axis from 0% to 100% doesn't map directly to 100 to 1000,\n because a 10% progression from 0% may be too much to define the 200,\n while 90% may be too little to define the 900.\n\n If the progression rates of axes is linear, this check can be ignored.\n Fontmake will also skip adding an avar table if the progression rates\n are linear. However, we still recommend designers visually proof each\n instance is at the expected weight, width etc.\n ", "result": "SKIP"}, {"description": "On a family update, the DESCRIPTION.en_us.html file should ideally also be updated.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The DESCRIPTION.en_us.html file in this family has not changed in comparison to the latest font release on the google/fonts github repo.\nPlease consider mentioning note-worthy improvements made to the family recently. [code: description-not-updated]", "status": "WARN", "traceback": null}], "rationale": "\n We want to ensure that any significant changes to the font family are\n properly mentioned in the DESCRIPTION file.\n\n In general, it means that the contents of the DESCRIPTION.en_us.html file\n will typically change if when font files are updated. Please treat this check\n as a reminder to do so whenever appropriate!\n ", "result": "WARN"}, {"description": "Check small caps glyphs are available.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Ensure small caps glyphs are available if\n a font declares smcp or c2sc OT features.\n ", "result": "PASS"}, {"description": "Ensure Stylistic Sets have description.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Stylistic sets should provide description text. Programs such as InDesign,\n TextEdit and Inkscape use that info to display to the users so that they know\n what a given stylistic set offers.\n ", "result": "PASS"}, {"description": "OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n All fonts on the Google Fonts collection should have OS/2.fsSelection bit 7\n (USE_TYPO_METRICS) set. This requirement is part of the vertical metrics scheme\n established as a Google Fonts policy aiming at a common ground supported by\n all major font rendering environments.\n\n For more details, read:\n https://github.com/googlefonts/gf-docs/blob/main/VerticalMetrics/README.md\n\n Below is the portion of that document that is most relevant to this check:\n\n Use_Typo_Metrics must be enabled. This will force MS Applications to use the\n OS/2 Typo values instead of the Win values. By doing this, we can freely set\n the Win values to avoid clipping and control the line height with the typo\n values. It has the added benefit of future line height compatibility. When\n a new script is added, we simply change the Win values to the new yMin\n and yMax, without needing to worry if the line height have changed.\n ", "result": "PASS", "severity": 10}, {"description": "Ensure fonts have ScriptLangTags declared on the 'meta' table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This font file does not have a 'meta' table. [code: lacks-meta-table]", "status": "WARN", "traceback": null}], "rationale": "\n The OpenType 'meta' table originated at Apple. Microsoft added it to OT with\n just two DataMap records:\n\n - dlng: comma-separated ScriptLangTags that indicate which scripts,\n or languages and scripts, with possible variants, the font is designed for.\n\n - slng: comma-separated ScriptLangTags that indicate which scripts,\n or languages and scripts, with possible variants, the font supports.\n\n\n The slng structure is intended to describe which languages and scripts the\n font overall supports. For example, a Traditional Chinese font that also\n contains Latin characters, can indicate Hant,Latn, showing that it supports\n Hant, the Traditional Chinese variant of the Hani script, and it also\n supports the Latn script.\n\n The dlng structure is far more interesting. A font may contain various glyphs,\n but only a particular subset of the glyphs may be truly \"leading\" in the design,\n while other glyphs may have been included for technical reasons. Such a\n Traditional Chinese font could only list Hant there, showing that it\u2019s designed\n for Traditional Chinese, but the font would omit Latn, because the developers\n don\u2019t think the font is really recommended for purely Latin-script use.\n\n The tags used in the structures can comprise just script, or also language\n and script. For example, if a font has Bulgarian Cyrillic alternates in the\n locl feature for the cyrl BGR OT languagesystem, it could also indicate in\n dlng explicitly that it supports bul-Cyrl. (Note that the scripts and languages\n in meta use the ISO language and script codes, not the OpenType ones).\n\n This check ensures that the font has the meta table containing the\n slng and dlng structures.\n\n All families in the Google Fonts collection should contain the 'meta' table.\n Windows 10 already uses it when deciding on which fonts to fall back to.\n The Google Fonts API and also other environments could use the data for\n smarter filtering. Most importantly, those entries should be added\n to the Noto fonts.\n\n In the font making process, some environments store this data in external\n files already. But the meta table provides a convenient way to store this\n inside the font file, so some tools may add the data, and unrelated tools\n may read this data. This makes the solution much more portable and universal.\n ", "result": "WARN", "severity": 3}, {"description": "Ensure fonts do not contain any pre-production tables.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Tables such as `Debg` are useful in the pre-production stages of font\n development, but add unnecessary bloat to a production font and should\n be removed before release.\n ", "result": "PASS", "severity": 6}, {"description": "Check font family directory name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Directory name is \"rubikdoodletriangles\", as expected.", "status": "PASS", "traceback": null}], "rationale": "\n We want the directory name of a font family to be predictable and directly\n derived from the family name, all lowercased and removing spaces.\n ", "result": "PASS"}, {"description": "Check font can render its own name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font can successfully render its own name (Rubik Doodle Triangles)", "status": "PASS", "traceback": null}], "rationale": "\n A base expectation is that a font family's regular/default (400 roman) style\n can render its 'menu name' (nameID 1) in itself.\n ", "result": "PASS"}, {"description": "Check samples can be rendered.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK.", "status": "PASS", "traceback": null}], "rationale": "\n In order to prevent tofu from being seen on fonts.google.com, this check\n verifies that all samples specified by METADATA.pb can be properly\n rendered by the font.\n ", "result": "PASS"}, {"description": "Check if category on METADATA.pb matches what can be inferred from the family name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK.", "status": "PASS", "traceback": null}], "rationale": "\n Sometimes the font familyname contains words that hint at which is the most\n likely correct category to be declared on METADATA.pb\n ", "result": "PASS"}, {"description": "Check font has the expected color font tables.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks Good!", "status": "PASS", "traceback": null}], "rationale": "\n COLR v0 fonts are widely supported in most browsers so they do not require\n an SVG color table. However, some environments (e.g. Safari, Adobe apps)\n do not currently support COLR v1 so we need to add an SVG table to these fonts,\n except in the case of variable fonts, since SVG does not support\n OpenType Variations.\n\n To automatically generate compatible SVG/COLR tables,\n run the maximum_color tool in nanoemoji:\n https://github.com/googlefonts/nanoemoji\n ", "result": "PASS"}, {"description": "Color layers should have a minimum brightness", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Layers of a COLRv0 font should not be too dark or too bright. When layer colors\n are set explicitly, they can't be changed and they may turn out illegible\n against dark or bright backgrounds.\n\n While traditional color-less fonts can be colored in design apps or CSS, a\n black color definition in a COLRv0 font actually means that that layer will be\n rendered in black regardless of the background color. This leads to text\n becoming invisible against a dark background, for instance when using a dark\n theme in a web browser or operating system.\n\n This check ensures that layer colors are at least 10% bright and at most 90%\n bright, when not already set to the current color (0xFFFF).\n ", "result": "PASS"}, {"description": "Put an empty glyph on GID 1 right after the .notdef glyph for COLRv0 fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n A rendering bug in Windows 10 paints whichever glyph is on GID 1 on top of\n some glyphs, colored or not. This only occurs for COLR version 0 fonts.\n\n Having a glyph with no contours on GID 1 is a practical workaround for that.\n\n See https://github.com/googlefonts/gftools/issues/609\n ", "result": "PASS"}, {"description": "Noto fonts must have an ARTICLE.en_us.html file", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_noto", "status": "SKIP", "traceback": null}], "rationale": "\n Noto fonts are displayed in a different way on the fonts.google.com\n web site, and so must also contain an article about them.\n ", "result": "SKIP"}, {"description": "At least one designer is declared in METADATA.pb", "experimental": "Since 2023/Oct/12", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font designer field is not empty.", "status": "PASS", "traceback": null}], "rationale": "\n Any font published on Google Fonts must credit one or several authors,\n foundry and/or individuals.\n\n Ideally, all authors listed in the upstream repository's AUTHORS.txt should\n be mentioned in the designer field.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"FAIL": 4, "INFO": 7, "PASS": 95, "SKIP": 27, "WARN": 7}}, {"checks": [{"description": "Checking all files are in the same directory.", "key": ["", "", []], "logs": [{"message": "All files are in the same directory.", "status": "PASS", "traceback": null}], "rationale": "\n If the set of font files passed in the command line is not all in the\n same directory, then we warn the user since the tool will interpret the\n set of files as belonging to a single family (and it is unlikely that\n the user would store the files from a single family spreaded\n in several separate directories).\n ", "result": "PASS"}, {"description": "Each font in a family must have the same set of vertical metrics values.", "key": ["", "", []], "logs": [{"message": "Vertical metrics are the same across the family.", "status": "PASS", "traceback": null}], "rationale": "\n We want all fonts within a family to have the same vertical metrics so\n their line spacing is consistent across the family.\n ", "result": "PASS"}, {"description": "Name table records must not have trailing spaces.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No trailing spaces on name table entries.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking OS/2 usWinAscent & usWinDescent.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 usWinAscent & usWinDescent values look good!", "status": "PASS", "traceback": null}], "rationale": "\n A font's winAscent and winDescent values should be greater than or equal to\n the head table's yMax, abs(yMin) values. If they are less than these values,\n clipping can occur on Windows platforms\n (https://github.com/RedHatBrand/Overpass/issues/33).\n\n If the font includes tall/deep writing systems such as Arabic or Devanagari,\n the winAscent and winDescent can be greater than the yMax and absolute yMin\n values to accommodate vowel marks.\n\n When the 'win' Metrics are significantly greater than the UPM, the linespacing\n can appear too loose. To counteract this, enabling the OS/2 fsSelection\n bit 7 (Use_Typo_Metrics), will force Windows to use the OS/2 'typo' values\n instead. This means the font developer can control the linespacing with\n the 'typo' values, whilst avoiding clipping by setting the 'win' values to\n values greater than the yMax and absolute yMin.\n ", "result": "PASS"}, {"description": "Checking OS/2 Metrics match hhea Metrics.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2.sTypoAscender/Descender values match hhea.ascent/descent.", "status": "PASS", "traceback": null}], "rationale": "\n OS/2 and hhea vertical metric values should match. This will produce the\n same linespacing on Mac, GNU+Linux and Windows.\n\n - Mac OS X uses the hhea values.\n - Windows uses OS/2 or Win, depending on the OS or fsSelection bit value.\n\n When OS/2 and hhea vertical metrics match, the same linespacing results on\n macOS, GNU+Linux and Windows. Note that fixing this issue in a previously\n released font may cause reflow in user documents and unhappy users.\n ", "result": "PASS"}, {"description": "Checking with ots-sanitize.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "ots-sanitize passed this file", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Do we have the latest version of FontBakery installed?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "FontBakery is up-to-date.", "status": "PASS", "traceback": null}], "rationale": "\n Running old versions of FontBakery can lead to a poor report which may\n include false WARNs and FAILs due do bugs, as well as outdated\n quality assurance criteria.\n\n Older versions will also not report problems that are detected by new checks\n added to the tool in more recent updates.\n ", "result": "PASS"}, {"description": "Font contains '.notdef' as its first glyph?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n The OpenType specification v1.8.2 recommends that the first glyph is the\n '.notdef' glyph without a codepoint assigned and with a drawing:\n\n The .notdef glyph is very important for providing the user feedback\n that a glyph is not found in the font. This glyph should not be left\n without an outline as the user will only see what looks like a space\n if a glyph is missing and not be aware of the active font\u2019s limitation.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/recom#glyph-0-the-notdef-glyph\n\n Pre-v1.8, it was recommended that fonts should also contain 'space', 'CR'\n and '.null' glyphs. This might have been relevant for MacOS 9 applications.\n ", "result": "PASS"}, {"description": "Font contains glyphs for whitespace characters?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font contains glyphs for whitespace characters.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font has **proper** whitespace glyph names?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has **AGL recommended** names for whitespace glyphs.", "status": "PASS", "traceback": null}], "rationale": "\n This check enforces adherence to recommended whitespace\n (codepoints 0020 and 00A0) glyph names according to the Adobe Glyph List.\n ", "result": "PASS"}, {"description": "Whitespace glyphs have ink?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There is no whitespace glyph with ink.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check that legacy accents aren't used in composite glyphs. (derived from com.google.fonts/check/legacy_accents)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Legacy accents should not be used in accented glyphs. The use of legacy\n accents in accented glyphs breaks the mark to mark combining feature that\n allows a font to stack diacritics over one glyph. Use combining marks\n instead as a component in composite glyphs.\n\n Legacy accents should not have anchors and should have non-zero width.\n They are often used independently of a letter, either as a placeholder\n for an expected combined mark+letter combination in MacOS, or separately.\n For instance, U+00B4 (ACUTE ACCENT) is often mistakenly used as an apostrophe,\n U+0060 (GRAVE ACCENT) is used in Markdown to notify code blocks,\n and ^ is used as an exponential operator in maths.\n ", "result": "PASS"}, {"description": "Check that Arabic spacing symbols U+FBB2\u2013FBC1 aren't classified as marks.", "experimental": "Since 2023/Oct/20", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Unicode has a few spacing symbols representing Arabic dots and other marks,\n but they are purposefully not classified as marks.\n\n Many fonts mistakenly classify them as marks, making them unsuitable\n for their original purpose as stand-alone symbols to used in pedagogical\n contexts discussing Arabic consonantal marks.\n ", "result": "PASS", "severity": 4}, {"description": "Check that glyph for U+0675 ARABIC LETTER HIGH HAMZA is not a mark.", "experimental": "Since 2023/Oct/20", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This check will only run on fonts that have both glyphs U+0621 and U+0675 [code: glyphs-missing]", "status": "SKIP", "traceback": null}], "rationale": "\n Many fonts incorrectly treat ARABIC LETTER HIGH HAMZA (U+0675) as a variant of\n ARABIC HAMZA ABOVE (U+0654) and make it a combining mark of the same size.\n\n But U+0675 is a base letter and should be a variant of ARABIC LETTER HAMZA\n (U+0621) but raised slightly above baseline.\n\n Not doing so effectively makes the font useless for Jawi and\n possibly Kazakh as well.\n ", "result": "SKIP", "severity": 4}, {"description": "Font contains all required tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This font contains the following optional tables:\n\n\t- loca\n\n\t- prep\n\n\t- GPOS\n\n\t- GSUB\n\n\t- gasp [code: optional-tables]", "status": "INFO", "traceback": null}, {"message": "Font contains all required tables.", "status": "PASS", "traceback": null}], "rationale": "\n According to the OpenType spec\n https://docs.microsoft.com/en-us/typography/opentype/spec/otff#required-tables\n\n Whether TrueType or CFF outlines are used in an OpenType font, the following\n tables are required for the font to function correctly:\n\n - cmap (Character to glyph mapping)\u23ce\n - head (Font header)\u23ce\n - hhea (Horizontal header)\u23ce\n - hmtx (Horizontal metrics)\u23ce\n - maxp (Maximum profile)\u23ce\n - name (Naming table)\u23ce\n - OS/2 (OS/2 and Windows specific metrics)\u23ce\n - post (PostScript information)\n\n The spec also documents that variable fonts require the following table:\n\n - STAT (Style attributes)\n\n Depending on the typeface and coverage of a font, certain tables are\n recommended for optimum quality.\n\n For example:\u23ce\n - the performance of a non-linear font is improved if the VDMX, LTSH,\n and hdmx tables are present.\u23ce\n - Non-monospaced Latin fonts should have a kern table.\u23ce\n - A gasp table is necessary if a designer wants to influence the sizes\n at which grayscaling is used under Windows. Etc.\n ", "result": "INFO"}, {"description": "Are there unwanted tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There are no unwanted tables.", "status": "PASS", "traceback": null}], "rationale": "\n Some font editors store source data in their own SFNT tables, and these\n can sometimes sneak into final release files, which should only have\n OpenType spec tables.\n ", "result": "PASS"}, {"description": "Check correctness of STAT table strings", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n On the STAT table, the \"Italic\" keyword must not be used on AxisValues\n for variation axes other than 'ital'.\n ", "result": "SKIP"}, {"description": "Glyph names are all valid?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyph names are all valid.", "status": "PASS", "traceback": null}], "rationale": "\n Microsoft's recommendations for OpenType Fonts states the following:\n\n 'NOTE: The PostScript glyph name must be no longer than 31 characters,\n include only uppercase or lowercase English letters, European digits,\n the period or the underscore, i.e. from the set [A-Za-z0-9_.] and\n should start with a letter, except the special glyph name \".notdef\"\n which starts with a period.'\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/recom#post-table\n\n\n In practice, though, particularly in modern environments, glyph names\n can be as long as 63 characters.\n\n According to the \"Adobe Glyph List Specification\" available at:\n\n https://github.com/adobe-type-tools/agl-specification\n ", "result": "PASS"}, {"description": "Font contains unique glyph names?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyph names are all unique.", "status": "PASS", "traceback": null}], "rationale": "\n Duplicate glyph names prevent font installation on Mac OS X.\n ", "result": "PASS"}, {"description": "List all superfamily filepaths", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles [code: family-path]", "status": "INFO", "traceback": null}], "rationale": "\n This is a merely informative check that lists all sibling families\n detected by fontbakery.\n\n Only the fontfiles in these directories will be considered in\n superfamily-level checks.\n ", "result": "INFO"}, {"description": "Each font in set of sibling families must have the same set of vertical metrics values.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Sibling families were not detected.", "status": "SKIP", "traceback": null}], "rationale": "\n We may want all fonts within a super-family (all sibling families) to have\n the same vertical metrics so their line spacing is consistent\n across the super-family.\n\n This is an experimental extended version of\n com.google.fonts/check/family/vertical_metrics and for now it will only\n result in WARNs.\n ", "result": "SKIP"}, {"description": "Ensure indic fonts have the Indian Rupee Sign glyph.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_indic_font", "status": "SKIP", "traceback": null}], "rationale": "\n Per Bureau of Indian Standards every font supporting one of the\n official Indian languages needs to include Unicode Character\n \u201c\u20b9\u201d (U+20B9) Indian Rupee Sign.\n ", "result": "SKIP"}, {"description": "Check font contains no unreachable glyphs", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font did not contain any unreachable glyphs", "status": "PASS", "traceback": null}], "rationale": "\n Glyphs are either accessible directly through Unicode codepoints or through\n substitution rules.\n\n In Color Fonts, glyphs are also referenced by the COLR table.\n\n Any glyphs not accessible by either of these means\n are redundant and serve only to increase the font's file size.\n ", "result": "PASS"}, {"description": "Check if each glyph has the recommended amount of contours.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.\n\nThe following glyphs do not have the recommended number of contours:\n\n\t- Glyph name: exclam\tContours detected: 122\tExpected: 2\n\n\t- Glyph name: quotedbl\tContours detected: 75\tExpected: 2\n\n\t- Glyph name: numbersign\tContours detected: 182\tExpected: 2\n\n\t- Glyph name: dollar\tContours detected: 224\tExpected: 1, 3 or 5\n\n\t- Glyph name: percent\tContours detected: 208\tExpected: 5\n\n\t- Glyph name: ampersand\tContours detected: 231\tExpected: 1, 2 or 3\n\n\t- Glyph name: quotesingle\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: parenleft\tContours detected: 144\tExpected: 1\n\n\t- Glyph name: parenright\tContours detected: 159\tExpected: 1\n\n\t- Glyph name: asterisk\tContours detected: 72\tExpected: 1 or 4\n\n\t- Glyph name: plus\tContours detected: 101\tExpected: 1\n\n\t- Glyph name: comma\tContours detected: 37\tExpected: 1\n\n\t- Glyph name: hyphen\tContours detected: 48\tExpected: 1\n\n\t- Glyph name: period\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: slash\tContours detected: 112\tExpected: 1\n\n\t- Glyph name: zero\tContours detected: 216\tExpected: 2 or 3\n\n\t- Glyph name: one\tContours detected: 134\tExpected: 1\n\n\t- Glyph name: two\tContours detected: 213\tExpected: 1\n\n\t- Glyph name: three\tContours detected: 204\tExpected: 1\n\n\t- Glyph name: four\tContours detected: 201\tExpected: 1 or 2\n\n\t- Glyph name: five\tContours detected: 255\tExpected: 1\n\n\t- Glyph name: six\tContours detected: 213\tExpected: 1 or 2\n\n\t- Glyph name: seven\tContours detected: 159\tExpected: 1\n\n\t- Glyph name: eight\tContours detected: 218\tExpected: 3\n\n\t- Glyph name: nine\tContours detected: 197\tExpected: 1 or 2\n\n\t- Glyph name: colon\tContours detected: 69\tExpected: 2\n\n\t- Glyph name: semicolon\tContours detected: 74\tExpected: 2\n\n\t- Glyph name: less\tContours detected: 108\tExpected: 1\n\n\t- Glyph name: equal\tContours detected: 102\tExpected: 2\n\n\t- Glyph name: greater\tContours detected: 106\tExpected: 1\n\n\t- Glyph name: question\tContours detected: 156\tExpected: 2\n\n\t- Glyph name: at\tContours detected: 263\tExpected: 2\n\n\t- Glyph name: A\tContours detected: 218\tExpected: 2\n\n\t- Glyph name: B\tContours detected: 249\tExpected: 2 or 3\n\n\t- Glyph name: C\tContours detected: 203\tExpected: 1\n\n\t- Glyph name: D\tContours detected: 239\tExpected: 2\n\n\t- Glyph name: E\tContours detected: 230\tExpected: 1\n\n\t- Glyph name: F\tContours detected: 217\tExpected: 1\n\n\t- Glyph name: G\tContours detected: 243\tExpected: 1\n\n\t- Glyph name: H\tContours detected: 243\tExpected: 1\n\n\t- Glyph name: I\tContours detected: 111\tExpected: 1\n\n\t- Glyph name: J\tContours detected: 193\tExpected: 1\n\n\t- Glyph name: K\tContours detected: 256\tExpected: 1 or 2\n\n\t- Glyph name: L\tContours detected: 156\tExpected: 1\n\n\t- Glyph name: M\tContours detected: 255\tExpected: 1\n\n\t- Glyph name: N\tContours detected: 239\tExpected: 1\n\n\t- Glyph name: O\tContours detected: 223\tExpected: 2\n\n\t- Glyph name: P\tContours detected: 196\tExpected: 1 or 2\n\n\t- Glyph name: Q\tContours detected: 243\tExpected: 2\n\n\t- Glyph name: R\tContours detected: 229\tExpected: 1 or 2\n\n\t- Glyph name: S\tContours detected: 240\tExpected: 1\n\n\t- Glyph name: T\tContours detected: 184\tExpected: 1\n\n\t- Glyph name: U\tContours detected: 226\tExpected: 1\n\n\t- Glyph name: V\tContours detected: 191\tExpected: 1\n\n\t- Glyph name: W\tContours detected: 264\tExpected: 1 or 2\n\n\t- Glyph name: X\tContours detected: 215\tExpected: 1\n\n\t- Glyph name: Y\tContours detected: 166\tExpected: 1\n\n\t- Glyph name: Z\tContours detected: 217\tExpected: 1\n\n\t- Glyph name: bracketleft\tContours detected: 162\tExpected: 1\n\n\t- Glyph name: backslash\tContours detected: 110\tExpected: 1\n\n\t- Glyph name: bracketright\tContours detected: 181\tExpected: 1\n\n\t- Glyph name: asciicircum\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: underscore\tContours detected: 93\tExpected: 1\n\n\t- Glyph name: grave\tContours detected: 26\tExpected: 1\n\n\t- Glyph name: a\tContours detected: 163\tExpected: 2\n\n\t- Glyph name: b\tContours detected: 190\tExpected: 2\n\n\t- Glyph name: c\tContours detected: 133\tExpected: 1\n\n\t- Glyph name: d\tContours detected: 193\tExpected: 2\n\n\t- Glyph name: e\tContours detected: 187\tExpected: 2\n\n\t- Glyph name: f\tContours detected: 149\tExpected: 1\n\n\t- Glyph name: g\tContours detected: 219\tExpected: 2 or 3\n\n\t- Glyph name: h\tContours detected: 200\tExpected: 1\n\n\t- Glyph name: i\tContours detected: 105\tExpected: 2\n\n\t- Glyph name: j\tContours detected: 136\tExpected: 2\n\n\t- Glyph name: k\tContours detected: 218\tExpected: 1 or 2\n\n\t- Glyph name: l\tContours detected: 106\tExpected: 1\n\n\t- Glyph name: m\tContours detected: 264\tExpected: 1\n\n\t- Glyph name: n\tContours detected: 167\tExpected: 1\n\n\t- Glyph name: o\tContours detected: 151\tExpected: 2\n\n\t- Glyph name: p\tContours detected: 225\tExpected: 2\n\n\t- Glyph name: q\tContours detected: 201\tExpected: 2\n\n\t- Glyph name: r\tContours detected: 108\tExpected: 1\n\n\t- Glyph name: s\tContours detected: 146\tExpected: 1\n\n\t- Glyph name: t\tContours detected: 140\tExpected: 1\n\n\t- Glyph name: u\tContours detected: 170\tExpected: 1\n\n\t- Glyph name: v\tContours detected: 123\tExpected: 1\n\n\t- Glyph name: w\tContours detected: 198\tExpected: 1\n\n\t- Glyph name: x\tContours detected: 147\tExpected: 1\n\n\t- Glyph name: y\tContours detected: 182\tExpected: 1\n\n\t- Glyph name: z\tContours detected: 144\tExpected: 1\n\n\t- Glyph name: braceleft\tContours detected: 150\tExpected: 1\n\n\t- Glyph name: bar\tContours detected: 136\tExpected: 1\n\n\t- Glyph name: braceright\tContours detected: 151\tExpected: 1\n\n\t- Glyph name: asciitilde\tContours detected: 63\tExpected: 1\n\n\t- Glyph name: exclamdown\tContours detected: 102\tExpected: 2\n\n\t- Glyph name: cent\tContours detected: 155\tExpected: 1 or 2\n\n\t- Glyph name: sterling\tContours detected: 235\tExpected: 1 or 2\n\n\t- Glyph name: currency\tContours detected: 153\tExpected: 2\n\n\t- Glyph name: yen\tContours detected: 198\tExpected: 1 or 2\n\n\t- Glyph name: brokenbar\tContours detected: 87\tExpected: 2\n\n\t- Glyph name: section\tContours detected: 229\tExpected: 2\n\n\t- Glyph name: dieresis\tContours detected: 48\tExpected: 2\n\n\t- Glyph name: copyright\tContours detected: 197\tExpected: 3\n\n\t- Glyph name: ordfeminine\tContours detected: 50\tExpected: 2 or 3\n\n\t- Glyph name: guillemotleft\tContours detected: 118\tExpected: 2\n\n\t- Glyph name: logicalnot\tContours detected: 62\tExpected: 1\n\n\t- Glyph name: registered\tContours detected: 197\tExpected: 3 or 4\n\n\t- Glyph name: macron\tContours detected: 46\tExpected: 1\n\n\t- Glyph name: degree\tContours detected: 71\tExpected: 2\n\n\t- Glyph name: plusminus\tContours detected: 146\tExpected: 1 or 2\n\n\t- Glyph name: uni00B2\tContours detected: 66\tExpected: 1\n\n\t- Glyph name: uni00B3\tContours detected: 58\tExpected: 1\n\n\t- Glyph name: acute\tContours detected: 32\tExpected: 1\n\n\t- Glyph name: uni00B5\tContours detected: 205\tExpected: 1\n\n\t- Glyph name: paragraph\tContours detected: 218\tExpected: 1, 2 or 3\n\n\t- Glyph name: periodcentered\tContours detected: 41\tExpected: 1\n\n\t- Glyph name: cedilla\tContours detected: 24\tExpected: 1\n\n\t- Glyph name: uni00B9\tContours detected: 40\tExpected: 1\n\n\t- Glyph name: ordmasculine\tContours detected: 48\tExpected: 2 or 3\n\n\t- Glyph name: guillemotright\tContours detected: 122\tExpected: 2\n\n\t- Glyph name: onequarter\tContours detected: 167\tExpected: 3 or 4\n\n\t- Glyph name: onehalf\tContours detected: 179\tExpected: 3\n\n\t- Glyph name: threequarters\tContours detected: 185\tExpected: 3 or 4\n\n\t- Glyph name: questiondown\tContours detected: 156\tExpected: 2\n\n\t- Glyph name: Agrave\tContours detected: 249\tExpected: 3\n\n\t- Glyph name: Aacute\tContours detected: 249\tExpected: 3\n\n\t- Glyph name: Acircumflex\tContours detected: 257\tExpected: 3\n\n\t- Glyph name: Atilde\tContours detected: 262\tExpected: 3\n\n\t- Glyph name: Adieresis\tContours detected: 259\tExpected: 4\n\n\t- Glyph name: Aring\tContours detected: 241\tExpected: 3 or 4\n\n\t- Glyph name: AE\tContours detected: 319\tExpected: 2\n\n\t- Glyph name: Ccedilla\tContours detected: 224\tExpected: 1 or 2\n\n\t- Glyph name: Egrave\tContours detected: 261\tExpected: 2\n\n\t- Glyph name: Eacute\tContours detected: 261\tExpected: 2\n\n\t- Glyph name: Ecircumflex\tContours detected: 269\tExpected: 2\n\n\t- Glyph name: Edieresis\tContours detected: 271\tExpected: 3\n\n\t- Glyph name: Igrave\tContours detected: 142\tExpected: 2\n\n\t- Glyph name: Iacute\tContours detected: 142\tExpected: 2\n\n\t- Glyph name: Icircumflex\tContours detected: 150\tExpected: 2\n\n\t- Glyph name: Idieresis\tContours detected: 152\tExpected: 3\n\n\t- Glyph name: Eth\tContours detected: 252\tExpected: 2\n\n\t- Glyph name: Ntilde\tContours detected: 283\tExpected: 2\n\n\t- Glyph name: Ograve\tContours detected: 254\tExpected: 3\n\n\t- Glyph name: Oacute\tContours detected: 254\tExpected: 3\n\n\t- Glyph name: Ocircumflex\tContours detected: 262\tExpected: 3\n\n\t- Glyph name: Otilde\tContours detected: 267\tExpected: 3\n\n\t- Glyph name: Odieresis\tContours detected: 264\tExpected: 4\n\n\t- Glyph name: multiply\tContours detected: 98\tExpected: 1\n\n\t- Glyph name: Oslash\tContours detected: 256\tExpected: 2 or 3\n\n\t- Glyph name: Ugrave\tContours detected: 257\tExpected: 2\n\n\t- Glyph name: Uacute\tContours detected: 257\tExpected: 2\n\n\t- Glyph name: Ucircumflex\tContours detected: 265\tExpected: 2\n\n\t- Glyph name: Udieresis\tContours detected: 267\tExpected: 3\n\n\t- Glyph name: Yacute\tContours detected: 197\tExpected: 2\n\n\t- Glyph name: Thorn\tContours detected: 197\tExpected: 1 or 2\n\n\t- Glyph name: germandbls\tContours detected: 221\tExpected: 1\n\n\t- Glyph name: agrave\tContours detected: 189\tExpected: 3\n\n\t- Glyph name: aacute\tContours detected: 195\tExpected: 3\n\n\t- Glyph name: acircumflex\tContours detected: 193\tExpected: 3\n\n\t- Glyph name: atilde\tContours detected: 208\tExpected: 3\n\n\t- Glyph name: adieresis\tContours detected: 211\tExpected: 4\n\n\t- Glyph name: aring\tContours detected: 190\tExpected: 4\n\n\t- Glyph name: ae\tContours detected: 243\tExpected: 3\n\n\t- Glyph name: ccedilla\tContours detected: 148\tExpected: 1 or 2\n\n\t- Glyph name: egrave\tContours detected: 213\tExpected: 3\n\n\t- Glyph name: eacute\tContours detected: 219\tExpected: 3\n\n\t- Glyph name: ecircumflex\tContours detected: 217\tExpected: 3\n\n\t- Glyph name: edieresis\tContours detected: 235\tExpected: 4\n\n\t- Glyph name: igrave\tContours detected: 105\tExpected: 2\n\n\t- Glyph name: iacute\tContours detected: 111\tExpected: 2\n\n\t- Glyph name: icircumflex\tContours detected: 109\tExpected: 2\n\n\t- Glyph name: idieresis\tContours detected: 127\tExpected: 3\n\n\t- Glyph name: eth\tContours detected: 199\tExpected: 2\n\n\t- Glyph name: ntilde\tContours detected: 212\tExpected: 2\n\n\t- Glyph name: ograve\tContours detected: 177\tExpected: 3\n\n\t- Glyph name: oacute\tContours detected: 183\tExpected: 3\n\n\t- Glyph name: ocircumflex\tContours detected: 181\tExpected: 3\n\n\t- Glyph name: otilde\tContours detected: 196\tExpected: 3\n\n\t- Glyph name: odieresis\tContours detected: 199\tExpected: 4\n\n\t- Glyph name: divide\tContours detected: 98\tExpected: 3\n\n\t- Glyph name: oslash\tContours detected: 180\tExpected: 3\n\n\t- Glyph name: ugrave\tContours detected: 196\tExpected: 2\n\n\t- Glyph name: uacute\tContours detected: 202\tExpected: 2\n\n\t- Glyph name: ucircumflex\tContours detected: 200\tExpected: 2\n\n\t- Glyph name: udieresis\tContours detected: 218\tExpected: 3\n\n\t- Glyph name: yacute\tContours detected: 214\tExpected: 2\n\n\t- Glyph name: thorn\tContours detected: 224\tExpected: 2\n\n\t- Glyph name: ydieresis\tContours detected: 230\tExpected: 3\n\n\t- Glyph name: Amacron\tContours detected: 260\tExpected: 3\n\n\t- Glyph name: amacron\tContours detected: 209\tExpected: 3\n\n\t- Glyph name: Abreve\tContours detected: 254\tExpected: 3\n\n\t- Glyph name: abreve\tContours detected: 197\tExpected: 3\n\n\t- Glyph name: Aogonek\tContours detected: 225\tExpected: 2 or 3\n\n\t- Glyph name: aogonek\tContours detected: 173\tExpected: 2\n\n\t- Glyph name: Cacute\tContours detected: 234\tExpected: 2\n\n\t- Glyph name: cacute\tContours detected: 165\tExpected: 2\n\n\t- Glyph name: Ccircumflex\tContours detected: 242\tExpected: 2\n\n\t- Glyph name: ccircumflex\tContours detected: 163\tExpected: 2\n\n\t- Glyph name: Cdotaccent\tContours detected: 231\tExpected: 2\n\n\t- Glyph name: cdotaccent\tContours detected: 155\tExpected: 2\n\n\t- Glyph name: Ccaron\tContours detected: 239\tExpected: 2\n\n\t- Glyph name: ccaron\tContours detected: 170\tExpected: 2\n\n\t- Glyph name: Dcaron\tContours detected: 275\tExpected: 3\n\n\t- Glyph name: dcaron\tContours detected: 218\tExpected: 3\n\n\t- Glyph name: Dcroat\tContours detected: 242\tExpected: 2\n\n\t- Glyph name: dcroat\tContours detected: 212\tExpected: 2\n\n\t- Glyph name: Emacron\tContours detected: 272\tExpected: 2\n\n\t- Glyph name: emacron\tContours detected: 233\tExpected: 3\n\n\t- Glyph name: Ebreve\tContours detected: 266\tExpected: 2\n\n\t- Glyph name: ebreve\tContours detected: 221\tExpected: 3\n\n\t- Glyph name: Edotaccent\tContours detected: 258\tExpected: 2\n\n\t- Glyph name: edotaccent\tContours detected: 209\tExpected: 3\n\n\t- Glyph name: Eogonek\tContours detected: 279\tExpected: 1 or 2\n\n\t- Glyph name: eogonek\tContours detected: 179\tExpected: 2\n\n\t- Glyph name: Ecaron\tContours detected: 266\tExpected: 2\n\n\t- Glyph name: ecaron\tContours detected: 224\tExpected: 3\n\n\t- Glyph name: Gcircumflex\tContours detected: 282\tExpected: 2\n\n\t- Glyph name: gcircumflex\tContours detected: 249\tExpected: 3 or 4\n\n\t- Glyph name: Gbreve\tContours detected: 279\tExpected: 2\n\n\t- Glyph name: gbreve\tContours detected: 253\tExpected: 3 or 4\n\n\t- Glyph name: Gdotaccent\tContours detected: 271\tExpected: 2\n\n\t- Glyph name: gdotaccent\tContours detected: 241\tExpected: 3 or 4\n\n\t- Glyph name: uni0122\tContours detected: 275\tExpected: 2\n\n\t- Glyph name: uni0123\tContours detected: 253\tExpected: 3 or 4\n\n\t- Glyph name: Hcircumflex\tContours detected: 282\tExpected: 2\n\n\t- Glyph name: hcircumflex\tContours detected: 230\tExpected: 2\n\n\t- Glyph name: Hbar\tContours detected: 257\tExpected: 2\n\n\t- Glyph name: hbar\tContours detected: 214\tExpected: 1\n\n\t- Glyph name: Itilde\tContours detected: 155\tExpected: 2\n\n\t- Glyph name: itilde\tContours detected: 124\tExpected: 2\n\n\t- Glyph name: Imacron\tContours detected: 153\tExpected: 2\n\n\t- Glyph name: imacron\tContours detected: 125\tExpected: 2\n\n\t- Glyph name: Ibreve\tContours detected: 147\tExpected: 2\n\n\t- Glyph name: ibreve\tContours detected: 113\tExpected: 2\n\n\t- Glyph name: Iogonek\tContours detected: 142\tExpected: 1 or 2\n\n\t- Glyph name: iogonek\tContours detected: 128\tExpected: 2 or 3\n\n\t- Glyph name: Idotaccent\tContours detected: 139\tExpected: 2\n\n\t- Glyph name: dotlessi\tContours detected: 79\tExpected: 1\n\n\t- Glyph name: IJ\tContours detected: 231\tExpected: 1 or 2\n\n\t- Glyph name: ij\tContours detected: 241\tExpected: 3 or 4\n\n\t- Glyph name: Jcircumflex\tContours detected: 232\tExpected: 2\n\n\t- Glyph name: jcircumflex\tContours detected: 190\tExpected: 2\n\n\t- Glyph name: uni0136\tContours detected: 288\tExpected: 2 or 3\n\n\t- Glyph name: uni0137\tContours detected: 243\tExpected: 2 or 3\n\n\t- Glyph name: kgreenlandic\tContours detected: 163\tExpected: 1 or 2\n\n\t- Glyph name: Lacute\tContours detected: 187\tExpected: 2\n\n\t- Glyph name: lacute\tContours detected: 138\tExpected: 2\n\n\t- Glyph name: uni013B\tContours detected: 188\tExpected: 2\n\n\t- Glyph name: uni013C\tContours detected: 131\tExpected: 2\n\n\t- Glyph name: Lcaron\tContours detected: 181\tExpected: 2\n\n\t- Glyph name: lcaron\tContours detected: 131\tExpected: 2\n\n\t- Glyph name: Ldot\tContours detected: 179\tExpected: 2\n\n\t- Glyph name: ldot\tContours detected: 131\tExpected: 2\n\n\t- Glyph name: Lslash\tContours detected: 195\tExpected: 1\n\n\t- Glyph name: lslash\tContours detected: 112\tExpected: 1\n\n\t- Glyph name: Nacute\tContours detected: 270\tExpected: 2\n\n\t- Glyph name: nacute\tContours detected: 199\tExpected: 2\n\n\t- Glyph name: uni0145\tContours detected: 271\tExpected: 2\n\n\t- Glyph name: uni0146\tContours detected: 192\tExpected: 2\n\n\t- Glyph name: Ncaron\tContours detected: 275\tExpected: 2\n\n\t- Glyph name: ncaron\tContours detected: 204\tExpected: 2\n\n\t- Glyph name: napostrophe\tContours detected: 210\tExpected: 2\n\n\t- Glyph name: Eng\tContours detected: 283\tExpected: 1\n\n\t- Glyph name: eng\tContours detected: 212\tExpected: 1\n\n\t- Glyph name: Omacron\tContours detected: 265\tExpected: 3\n\n\t- Glyph name: omacron\tContours detected: 197\tExpected: 3\n\n\t- Glyph name: Obreve\tContours detected: 259\tExpected: 3\n\n\t- Glyph name: obreve\tContours detected: 185\tExpected: 3\n\n\t- Glyph name: Ohungarumlaut\tContours detected: 271\tExpected: 4\n\n\t- Glyph name: ohungarumlaut\tContours detected: 195\tExpected: 4\n\n\t- Glyph name: OE\tContours detected: 331\tExpected: 2\n\n\t- Glyph name: oe\tContours detected: 265\tExpected: 3\n\n\t- Glyph name: Racute\tContours detected: 260\tExpected: 3\n\n\t- Glyph name: racute\tContours detected: 140\tExpected: 2\n\n\t- Glyph name: uni0156\tContours detected: 261\tExpected: 3\n\n\t- Glyph name: uni0157\tContours detected: 133\tExpected: 2\n\n\t- Glyph name: Rcaron\tContours detected: 265\tExpected: 3\n\n\t- Glyph name: rcaron\tContours detected: 145\tExpected: 2\n\n\t- Glyph name: Sacute\tContours detected: 271\tExpected: 2\n\n\t- Glyph name: sacute\tContours detected: 178\tExpected: 2\n\n\t- Glyph name: Scircumflex\tContours detected: 279\tExpected: 2\n\n\t- Glyph name: scircumflex\tContours detected: 176\tExpected: 2\n\n\t- Glyph name: Scedilla\tContours detected: 259\tExpected: 1 or 2\n\n\t- Glyph name: scedilla\tContours detected: 170\tExpected: 1 or 2\n\n\t- Glyph name: Scaron\tContours detected: 276\tExpected: 2\n\n\t- Glyph name: scaron\tContours detected: 183\tExpected: 2\n\n\t- Glyph name: Tcaron\tContours detected: 220\tExpected: 2\n\n\t- Glyph name: tcaron\tContours detected: 165\tExpected: 2\n\n\t- Glyph name: Tbar\tContours detected: 186\tExpected: 1\n\n\t- Glyph name: tbar\tContours detected: 165\tExpected: 1\n\n\t- Glyph name: Utilde\tContours detected: 270\tExpected: 2\n\n\t- Glyph name: utilde\tContours detected: 215\tExpected: 2\n\n\t- Glyph name: Umacron\tContours detected: 268\tExpected: 2\n\n\t- Glyph name: umacron\tContours detected: 216\tExpected: 2\n\n\t- Glyph name: Ubreve\tContours detected: 262\tExpected: 2\n\n\t- Glyph name: ubreve\tContours detected: 204\tExpected: 2\n\n\t- Glyph name: Uring\tContours detected: 249\tExpected: 3\n\n\t- Glyph name: uring\tContours detected: 197\tExpected: 3\n\n\t- Glyph name: Uhungarumlaut\tContours detected: 274\tExpected: 3\n\n\t- Glyph name: uhungarumlaut\tContours detected: 214\tExpected: 3\n\n\t- Glyph name: Uogonek\tContours detected: 241\tExpected: 1\n\n\t- Glyph name: uogonek\tContours detected: 193\tExpected: 1\n\n\t- Glyph name: Wcircumflex\tContours detected: 303\tExpected: 2\n\n\t- Glyph name: wcircumflex\tContours detected: 228\tExpected: 2\n\n\t- Glyph name: Ycircumflex\tContours detected: 205\tExpected: 2\n\n\t- Glyph name: ycircumflex\tContours detected: 212\tExpected: 2\n\n\t- Glyph name: Ydieresis\tContours detected: 207\tExpected: 3\n\n\t- Glyph name: Zacute\tContours detected: 248\tExpected: 2\n\n\t- Glyph name: zacute\tContours detected: 176\tExpected: 2\n\n\t- Glyph name: Zdotaccent\tContours detected: 245\tExpected: 2\n\n\t- Glyph name: zdotaccent\tContours detected: 166\tExpected: 2\n\n\t- Glyph name: Zcaron\tContours detected: 253\tExpected: 2\n\n\t- Glyph name: zcaron\tContours detected: 181\tExpected: 2\n\n\t- Glyph name: longs\tContours detected: 132\tExpected: 1\n\n\t- Glyph name: florin\tContours detected: 185\tExpected: 1\n\n\t- Glyph name: AEacute\tContours detected: 350\tExpected: 3\n\n\t- Glyph name: aeacute\tContours detected: 275\tExpected: 4\n\n\t- Glyph name: Oslashacute\tContours detected: 287\tExpected: 4\n\n\t- Glyph name: oslashacute\tContours detected: 212\tExpected: 4\n\n\t- Glyph name: uni0218\tContours detected: 272\tExpected: 2\n\n\t- Glyph name: uni0219\tContours detected: 171\tExpected: 2\n\n\t- Glyph name: uni021A\tContours detected: 216\tExpected: 2\n\n\t- Glyph name: uni021B\tContours detected: 165\tExpected: 2\n\n\t- Glyph name: uni0237\tContours detected: 160\tExpected: 1\n\n\t- Glyph name: uni02BC\tContours detected: 25\tExpected: 1\n\n\t- Glyph name: circumflex\tContours detected: 30\tExpected: 1\n\n\t- Glyph name: caron\tContours detected: 37\tExpected: 1\n\n\t- Glyph name: breve\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: dotaccent\tContours detected: 22\tExpected: 1\n\n\t- Glyph name: ring\tContours detected: 27\tExpected: 2\n\n\t- Glyph name: ogonek\tContours detected: 38\tExpected: 1\n\n\t- Glyph name: tilde\tContours detected: 45\tExpected: 1\n\n\t- Glyph name: hungarumlaut\tContours detected: 44\tExpected: 2\n\n\t- Glyph name: gravecomb\tContours detected: 26\tExpected: 1\n\n\t- Glyph name: acutecomb\tContours detected: 32\tExpected: 1\n\n\t- Glyph name: uni0302\tContours detected: 30\tExpected: 1\n\n\t- Glyph name: tildecomb\tContours detected: 45\tExpected: 1\n\n\t- Glyph name: uni0304\tContours detected: 46\tExpected: 1\n\n\t- Glyph name: uni0306\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: uni0307\tContours detected: 22\tExpected: 1\n\n\t- Glyph name: uni0308\tContours detected: 48\tExpected: 2\n\n\t- Glyph name: uni030A\tContours detected: 27\tExpected: 2\n\n\t- Glyph name: uni030B\tContours detected: 44\tExpected: 2\n\n\t- Glyph name: uni030C\tContours detected: 37\tExpected: 1\n\n\t- Glyph name: uni0312\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: uni0326\tContours detected: 25\tExpected: 1\n\n\t- Glyph name: uni0327\tContours detected: 24\tExpected: 1\n\n\t- Glyph name: uni0328\tContours detected: 38\tExpected: 1\n\n\t- Glyph name: uni0335\tContours detected: 37\tExpected: 1\n\n\t- Glyph name: uni0337\tContours detected: 48\tExpected: 1\n\n\t- Glyph name: uni0338\tContours detected: 53\tExpected: 1\n\n\t- Glyph name: uni0400\tContours detected: 261\tExpected: 2\n\n\t- Glyph name: uni0401\tContours detected: 278\tExpected: 3\n\n\t- Glyph name: uni0402\tContours detected: 257\tExpected: 1\n\n\t- Glyph name: uni0403\tContours detected: 184\tExpected: 2\n\n\t- Glyph name: uni0404\tContours detected: 208\tExpected: 1\n\n\t- Glyph name: uni0405\tContours detected: 240\tExpected: 1\n\n\t- Glyph name: uni0406\tContours detected: 111\tExpected: 1\n\n\t- Glyph name: uni0407\tContours detected: 159\tExpected: 3\n\n\t- Glyph name: uni0408\tContours detected: 193\tExpected: 1\n\n\t- Glyph name: uni0409\tContours detected: 325\tExpected: 2\n\n\t- Glyph name: uni040A\tContours detected: 366\tExpected: 2\n\n\t- Glyph name: uni040B\tContours detected: 235\tExpected: 1\n\n\t- Glyph name: uni040C\tContours detected: 255\tExpected: 2\n\n\t- Glyph name: uni040D\tContours detected: 289\tExpected: 2\n\n\t- Glyph name: uni040E\tContours detected: 218\tExpected: 2\n\n\t- Glyph name: uni040F\tContours detected: 246\tExpected: 1\n\n\t- Glyph name: uni0410\tContours detected: 218\tExpected: 2\n\n\t- Glyph name: uni0411\tContours detected: 234\tExpected: 2\n\n\t- Glyph name: uni0412\tContours detected: 249\tExpected: 3\n\n\t- Glyph name: uni0413\tContours detected: 153\tExpected: 1\n\n\t- Glyph name: uni0414\tContours detected: 309\tExpected: 2\n\n\t- Glyph name: uni0415\tContours detected: 230\tExpected: 1\n\n\t- Glyph name: uni0416\tContours detected: 347\tExpected: 1\n\n\t- Glyph name: uni0417\tContours detected: 221\tExpected: 1\n\n\t- Glyph name: uni0418\tContours detected: 258\tExpected: 1\n\n\t- Glyph name: uni0419\tContours detected: 294\tExpected: 2\n\n\t- Glyph name: uni041A\tContours detected: 224\tExpected: 1\n\n\t- Glyph name: uni041B\tContours detected: 267\tExpected: 1\n\n\t- Glyph name: uni041C\tContours detected: 255\tExpected: 1\n\n\t- Glyph name: uni041D\tContours detected: 243\tExpected: 1\n\n\t- Glyph name: uni041E\tContours detected: 223\tExpected: 2\n\n\t- Glyph name: uni041F\tContours detected: 231\tExpected: 1\n\n\t- Glyph name: uni0420\tContours detected: 196\tExpected: 1 or 2\n\n\t- Glyph name: uni0421\tContours detected: 203\tExpected: 1\n\n\t- Glyph name: uni0422\tContours detected: 184\tExpected: 1\n\n\t- Glyph name: uni0423\tContours detected: 182\tExpected: 1\n\n\t- Glyph name: uni0424\tContours detected: 298\tExpected: 3\n\n\t- Glyph name: uni0425\tContours detected: 215\tExpected: 1\n\n\t- Glyph name: uni0426\tContours detected: 263\tExpected: 1\n\n\t- Glyph name: uni0427\tContours detected: 203\tExpected: 1\n\n\t- Glyph name: uni0428\tContours detected: 338\tExpected: 1\n\n\t- Glyph name: uni0429\tContours detected: 367\tExpected: 1\n\n\t- Glyph name: uni042A\tContours detected: 210\tExpected: 2\n\n\t- Glyph name: uni042B\tContours detected: 308\tExpected: 3\n\n\t- Glyph name: uni042C\tContours detected: 211\tExpected: 2\n\n\t- Glyph name: uni042D\tContours detected: 216\tExpected: 1\n\n\t- Glyph name: uni042E\tContours detected: 346\tExpected: 2\n\n\t- Glyph name: uni042F\tContours detected: 232\tExpected: 2\n\n\t- Glyph name: uni0430\tContours detected: 163\tExpected: 2\n\n\t- Glyph name: uni0431\tContours detected: 206\tExpected: 2\n\n\t- Glyph name: uni0432\tContours detected: 193\tExpected: 3\n\n\t- Glyph name: uni0433\tContours detected: 98\tExpected: 1\n\n\t- Glyph name: uni0434\tContours detected: 237\tExpected: 2\n\n\t- Glyph name: uni0435\tContours detected: 187\tExpected: 2\n\n\t- Glyph name: uni0436\tContours detected: 242\tExpected: 1\n\n\t- Glyph name: uni0437\tContours detected: 143\tExpected: 1\n\n\t- Glyph name: uni0438\tContours detected: 181\tExpected: 1\n\n\t- Glyph name: uni0439\tContours detected: 219\tExpected: 2\n\n\t- Glyph name: uni043A\tContours detected: 164\tExpected: 1\n\n\t- Glyph name: uni043B\tContours detected: 155\tExpected: 1\n\n\t- Glyph name: uni043C\tContours detected: 183\tExpected: 1\n\n\t- Glyph name: uni043D\tContours detected: 167\tExpected: 1\n\n\t- Glyph name: uni043E\tContours detected: 151\tExpected: 2\n\n\t- Glyph name: uni043F\tContours detected: 160\tExpected: 1\n\n\t- Glyph name: uni0440\tContours detected: 225\tExpected: 2\n\n\t- Glyph name: uni0441\tContours detected: 133\tExpected: 1\n\n\t- Glyph name: uni0442\tContours detected: 119\tExpected: 1\n\n\t- Glyph name: uni0443\tContours detected: 170\tExpected: 1\n\n\t- Glyph name: uni0444\tContours detected: 275\tExpected: 3\n\n\t- Glyph name: uni0445\tContours detected: 147\tExpected: 1\n\n\t- Glyph name: uni0446\tContours detected: 221\tExpected: 1\n\n\t- Glyph name: uni0447\tContours detected: 148\tExpected: 1\n\n\t- Glyph name: uni0448\tContours detected: 225\tExpected: 1\n\n\t- Glyph name: uni0449\tContours detected: 240\tExpected: 1\n\n\t- Glyph name: uni044A\tContours detected: 152\tExpected: 2\n\n\t- Glyph name: uni044B\tContours detected: 204\tExpected: 3\n\n\t- Glyph name: uni044C\tContours detected: 132\tExpected: 2\n\n\t- Glyph name: uni044D\tContours detected: 150\tExpected: 1\n\n\t- Glyph name: uni044E\tContours detected: 229\tExpected: 2\n\n\t- Glyph name: uni044F\tContours detected: 158\tExpected: 2\n\n\t- Glyph name: uni0450\tContours detected: 213\tExpected: 3\n\n\t- Glyph name: uni0451\tContours detected: 235\tExpected: 4\n\n\t- Glyph name: uni0452\tContours detected: 235\tExpected: 1\n\n\t- Glyph name: uni0453\tContours detected: 130\tExpected: 2\n\n\t- Glyph name: uni0454\tContours detected: 135\tExpected: 1\n\n\t- Glyph name: uni0455\tContours detected: 146\tExpected: 1\n\n\t- Glyph name: uni0456\tContours detected: 105\tExpected: 2\n\n\t- Glyph name: uni0457\tContours detected: 127\tExpected: 3\n\n\t- Glyph name: uni0458\tContours detected: 136\tExpected: 2\n\n\t- Glyph name: uni0459\tContours detected: 211\tExpected: 2\n\n\t- Glyph name: uni045A\tContours detected: 220\tExpected: 2\n\n\t- Glyph name: uni045B\tContours detected: 213\tExpected: 1\n\n\t- Glyph name: uni045C\tContours detected: 196\tExpected: 2\n\n\t- Glyph name: uni045D\tContours detected: 207\tExpected: 2\n\n\t- Glyph name: uni045E\tContours detected: 208\tExpected: 2\n\n\t- Glyph name: uni045F\tContours detected: 184\tExpected: 1 or 2\n\n\t- Glyph name: uni0462\tContours detected: 211\tExpected: 2\n\n\t- Glyph name: uni0463\tContours detected: 184\tExpected: 2\n\n\t- Glyph name: uni046A\tContours detected: 320\tExpected: 2\n\n\t- Glyph name: uni046B\tContours detected: 246\tExpected: 2\n\n\t- Glyph name: uni0472\tContours detected: 234\tExpected: 3\n\n\t- Glyph name: uni0473\tContours detected: 154\tExpected: 3\n\n\t- Glyph name: uni0474\tContours detected: 209\tExpected: 1\n\n\t- Glyph name: uni0475\tContours detected: 121\tExpected: 1\n\n\t- Glyph name: uni0490\tContours detected: 170\tExpected: 1\n\n\t- Glyph name: uni0491\tContours detected: 118\tExpected: 1\n\n\t- Glyph name: uni0492\tContours detected: 166\tExpected: 1\n\n\t- Glyph name: uni0493\tContours detected: 111\tExpected: 1\n\n\t- Glyph name: uni0494\tContours detected: 234\tExpected: 1\n\n\t- Glyph name: uni0495\tContours detected: 172\tExpected: 1\n\n\t- Glyph name: uni0496\tContours detected: 372\tExpected: 1 or 2\n\n\t- Glyph name: uni0497\tContours detected: 273\tExpected: 1 or 2\n\n\t- Glyph name: uni0498\tContours detected: 220\tExpected: 1 or 2\n\n\t- Glyph name: uni0499\tContours detected: 151\tExpected: 1 or 2\n\n\t- Glyph name: uni049A\tContours detected: 261\tExpected: 1 or 2\n\n\t- Glyph name: uni049B\tContours detected: 192\tExpected: 1 or 2\n\n\t- Glyph name: uni049C\tContours detected: 249\tExpected: 1\n\n\t- Glyph name: uni049D\tContours detected: 186\tExpected: 1\n\n\t- Glyph name: uni04A0\tContours detected: 245\tExpected: 1\n\n\t- Glyph name: uni04A1\tContours detected: 180\tExpected: 1\n\n\t- Glyph name: uni04A2\tContours detected: 310\tExpected: 1 or 2\n\n\t- Glyph name: uni04A3\tContours detected: 222\tExpected: 1 or 2\n\n\t- Glyph name: uni04A4\tContours detected: 266\tExpected: 1\n\n\t- Glyph name: uni04A5\tContours detected: 206\tExpected: 1\n\n\t- Glyph name: uni04AA\tContours detected: 224\tExpected: 1 or 2\n\n\t- Glyph name: uni04AB\tContours detected: 157\tExpected: 1 or 2\n\n\t- Glyph name: Ustraitcy\tContours detected: 166\tExpected: 1\n\n\t- Glyph name: ustraitcy\tContours detected: 172\tExpected: 1\n\n\t- Glyph name: Ustraitstrokecy\tContours detected: 189\tExpected: 1\n\n\t- Glyph name: ustraitstrokecy\tContours detected: 159\tExpected: 1\n\n\t- Glyph name: uni04B6\tContours detected: 258\tExpected: 1 or 2\n\n\t- Glyph name: uni04B7\tContours detected: 178\tExpected: 1 or 2\n\n\t- Glyph name: uni04B8\tContours detected: 204\tExpected: 1\n\n\t- Glyph name: uni04B9\tContours detected: 160\tExpected: 1\n\n\t- Glyph name: uni04BA\tContours detected: 221\tExpected: 1\n\n\t- Glyph name: uni04BB\tContours detected: 200\tExpected: 1\n\n\t- Glyph name: uni04C0\tContours detected: 111\tExpected: 1\n\n\t- Glyph name: uni04C1\tContours detected: 383\tExpected: 2\n\n\t- Glyph name: uni04C2\tContours detected: 280\tExpected: 2\n\n\t- Glyph name: uni04CB\tContours detected: 223\tExpected: 1 or 2\n\n\t- Glyph name: uni04CC\tContours detected: 167\tExpected: 1 or 2\n\n\t- Glyph name: uni04CF\tContours detected: 106\tExpected: 1\n\n\t- Glyph name: uni04D0\tContours detected: 254\tExpected: 3\n\n\t- Glyph name: uni04D1\tContours detected: 201\tExpected: 3\n\n\t- Glyph name: uni04D2\tContours detected: 266\tExpected: 4\n\n\t- Glyph name: uni04D3\tContours detected: 211\tExpected: 4\n\n\t- Glyph name: uni04D4\tContours detected: 319\tExpected: 2\n\n\t- Glyph name: uni04D5\tContours detected: 243\tExpected: 3\n\n\t- Glyph name: uni04D6\tContours detected: 266\tExpected: 2\n\n\t- Glyph name: uni04D7\tContours detected: 225\tExpected: 3\n\n\t- Glyph name: uni04D8\tContours detected: 269\tExpected: 2\n\n\t- Glyph name: uni04D9\tContours detected: 159\tExpected: 2\n\n\t- Glyph name: uni04DC\tContours detected: 395\tExpected: 3\n\n\t- Glyph name: uni04DD\tContours detected: 290\tExpected: 3\n\n\t- Glyph name: uni04DE\tContours detected: 269\tExpected: 3\n\n\t- Glyph name: uni04DF\tContours detected: 191\tExpected: 3\n\n\t- Glyph name: uni04E2\tContours detected: 304\tExpected: 2\n\n\t- Glyph name: uni04E3\tContours detected: 227\tExpected: 2\n\n\t- Glyph name: uni04E4\tContours detected: 306\tExpected: 3\n\n\t- Glyph name: uni04E5\tContours detected: 229\tExpected: 3\n\n\t- Glyph name: uni04E6\tContours detected: 271\tExpected: 4\n\n\t- Glyph name: uni04E7\tContours detected: 199\tExpected: 4\n\n\t- Glyph name: uni04E8\tContours detected: 236\tExpected: 3\n\n\t- Glyph name: uni04E9\tContours detected: 154\tExpected: 3\n\n\t- Glyph name: uni04EE\tContours detected: 228\tExpected: 2\n\n\t- Glyph name: uni04EF\tContours detected: 216\tExpected: 2\n\n\t- Glyph name: uni04F0\tContours detected: 230\tExpected: 3\n\n\t- Glyph name: uni04F1\tContours detected: 218\tExpected: 3\n\n\t- Glyph name: uni04F2\tContours detected: 226\tExpected: 3\n\n\t- Glyph name: uni04F3\tContours detected: 214\tExpected: 3\n\n\t- Glyph name: uni04F4\tContours detected: 251\tExpected: 3\n\n\t- Glyph name: uni04F5\tContours detected: 196\tExpected: 3\n\n\t- Glyph name: uni04F6\tContours detected: 183\tExpected: 1 or 2\n\n\t- Glyph name: uni04F7\tContours detected: 131\tExpected: 1 or 2\n\n\t- Glyph name: uni04F8\tContours detected: 356\tExpected: 5\n\n\t- Glyph name: uni04F9\tContours detected: 252\tExpected: 5\n\n\t- Glyph name: uni051A\tContours detected: 243\tExpected: 2\n\n\t- Glyph name: uni051B\tContours detected: 201\tExpected: 2\n\n\t- Glyph name: uni051C\tContours detected: 264\tExpected: 1\n\n\t- Glyph name: uni051D\tContours detected: 198\tExpected: 1\n\n\t- Glyph name: uni0524\tContours detected: 270\tExpected: 1\n\n\t- Glyph name: uni0525\tContours detected: 191\tExpected: 1\n\n\t- Glyph name: Wgrave\tContours detected: 295\tExpected: 2\n\n\t- Glyph name: wgrave\tContours detected: 224\tExpected: 2\n\n\t- Glyph name: Wacute\tContours detected: 295\tExpected: 2\n\n\t- Glyph name: wacute\tContours detected: 230\tExpected: 2\n\n\t- Glyph name: Wdieresis\tContours detected: 305\tExpected: 3\n\n\t- Glyph name: wdieresis\tContours detected: 246\tExpected: 3\n\n\t- Glyph name: uni1E9E\tContours detected: 234\tExpected: 1\n\n\t- Glyph name: Ygrave\tContours detected: 197\tExpected: 2\n\n\t- Glyph name: ygrave\tContours detected: 208\tExpected: 2\n\n\t- Glyph name: endash\tContours detected: 57\tExpected: 1\n\n\t- Glyph name: emdash\tContours detected: 80\tExpected: 1\n\n\t- Glyph name: quoteleft\tContours detected: 38\tExpected: 1\n\n\t- Glyph name: quoteright\tContours detected: 39\tExpected: 1\n\n\t- Glyph name: quotesinglbase\tContours detected: 37\tExpected: 1\n\n\t- Glyph name: quotedblleft\tContours detected: 75\tExpected: 2\n\n\t- Glyph name: quotedblright\tContours detected: 74\tExpected: 2\n\n\t- Glyph name: quotedblbase\tContours detected: 81\tExpected: 2\n\n\t- Glyph name: dagger\tContours detected: 123\tExpected: 1 or 2\n\n\t- Glyph name: daggerdbl\tContours detected: 150\tExpected: 1 or 3\n\n\t- Glyph name: bullet\tContours detected: 39\tExpected: 1\n\n\t- Glyph name: ellipsis\tContours detected: 115\tExpected: 3\n\n\t- Glyph name: perthousand\tContours detected: 285\tExpected: 6 or 7\n\n\t- Glyph name: guilsinglleft\tContours detected: 67\tExpected: 1\n\n\t- Glyph name: guilsinglright\tContours detected: 58\tExpected: 1\n\n\t- Glyph name: fraction\tContours detected: 73\tExpected: 1\n\n\t- Glyph name: uni2070\tContours detected: 62\tExpected: 2 or 3\n\n\t- Glyph name: uni2074\tContours detected: 54\tExpected: 1 or 2\n\n\t- Glyph name: uni2075\tContours detected: 61\tExpected: 1\n\n\t- Glyph name: uni2076\tContours detected: 55\tExpected: 2\n\n\t- Glyph name: uni2077\tContours detected: 49\tExpected: 1\n\n\t- Glyph name: uni2078\tContours detected: 67\tExpected: 3\n\n\t- Glyph name: uni2079\tContours detected: 60\tExpected: 2\n\n\t- Glyph name: uni207D\tContours detected: 46\tExpected: 1\n\n\t- Glyph name: uni207E\tContours detected: 47\tExpected: 1\n\n\t- Glyph name: uni2080\tContours detected: 62\tExpected: 2 or 3\n\n\t- Glyph name: uni2081\tContours detected: 40\tExpected: 1\n\n\t- Glyph name: uni2082\tContours detected: 66\tExpected: 1\n\n\t- Glyph name: uni2083\tContours detected: 58\tExpected: 1\n\n\t- Glyph name: uni2084\tContours detected: 54\tExpected: 1 or 2\n\n\t- Glyph name: uni2085\tContours detected: 61\tExpected: 1\n\n\t- Glyph name: uni2086\tContours detected: 55\tExpected: 2\n\n\t- Glyph name: uni2087\tContours detected: 49\tExpected: 1\n\n\t- Glyph name: uni2088\tContours detected: 67\tExpected: 3\n\n\t- Glyph name: uni2089\tContours detected: 60\tExpected: 2\n\n\t- Glyph name: uni208D\tContours detected: 46\tExpected: 1\n\n\t- Glyph name: uni208E\tContours detected: 47\tExpected: 1\n\n\t- Glyph name: uni20AA\tContours detected: 326\tExpected: 2\n\n\t- Glyph name: Euro\tContours detected: 237\tExpected: 1 or 2\n\n\t- Glyph name: uni20AE\tContours detected: 203\tExpected: 1\n\n\t- Glyph name: uni20B4\tContours detected: 203\tExpected: 1 or 2\n\n\t- Glyph name: uni20B8\tContours detected: 183\tExpected: 2\n\n\t- Glyph name: uni20B9\tContours detected: 186\tExpected: 1\n\n\t- Glyph name: uni20BD\tContours detected: 224\tExpected: 2\n\n\t- Glyph name: uni2116\tContours detected: 412\tExpected: 3 or 4\n\n\t- Glyph name: trademark\tContours detected: 88\tExpected: 2\n\n\t- Glyph name: estimated\tContours detected: 177\tExpected: 2\n\n\t- Glyph name: uni2153\tContours detected: 171\tExpected: 3\n\n\t- Glyph name: uni2154\tContours detected: 197\tExpected: 1 or 3\n\n\t- Glyph name: oneeighth\tContours detected: 180\tExpected: 5\n\n\t- Glyph name: threeeighths\tContours detected: 198\tExpected: 5\n\n\t- Glyph name: fiveeighths\tContours detected: 201\tExpected: 5\n\n\t- Glyph name: seveneighths\tContours detected: 189\tExpected: 5\n\n\t- Glyph name: partialdiff\tContours detected: 180\tExpected: 2\n\n\t- Glyph name: uni2206\tContours detected: 176\tExpected: 2\n\n\t- Glyph name: product\tContours detected: 306\tExpected: 1\n\n\t- Glyph name: summation\tContours detected: 247\tExpected: 1\n\n\t- Glyph name: minus\tContours detected: 59\tExpected: 1\n\n\t- Glyph name: uni2215\tContours detected: 112\tExpected: 1\n\n\t- Glyph name: radical\tContours detected: 181\tExpected: 1\n\n\t- Glyph name: infinity\tContours detected: 175\tExpected: 3\n\n\t- Glyph name: integral\tContours detected: 129\tExpected: 1\n\n\t- Glyph name: approxequal\tContours detected: 114\tExpected: 2\n\n\t- Glyph name: notequal\tContours detected: 134\tExpected: 1\n\n\t- Glyph name: lessequal\tContours detected: 146\tExpected: 2\n\n\t- Glyph name: greaterequal\tContours detected: 141\tExpected: 2\n\n\t- Glyph name: lozenge\tContours detected: 147\tExpected: 2\n\n\t- Glyph name: fi\tContours detected: 311\tExpected: 1, 2 or 3\n\n\t- Glyph name: fl\tContours detected: 293\tExpected: 1 or 2\n\n\t- Glyph name: A\tContours detected: 218\tExpected: 2\n\n\t- Glyph name: AE\tContours detected: 319\tExpected: 2\n\n\t- Glyph name: AEacute\tContours detected: 350\tExpected: 3\n\n\t- Glyph name: Aacute\tContours detected: 249\tExpected: 3\n\n\t- Glyph name: Abreve\tContours detected: 254\tExpected: 3\n\n\t- Glyph name: Acircumflex\tContours detected: 257\tExpected: 3\n\n\t- Glyph name: Adieresis\tContours detected: 259\tExpected: 4\n\n\t- Glyph name: Agrave\tContours detected: 249\tExpected: 3\n\n\t- Glyph name: Amacron\tContours detected: 260\tExpected: 3\n\n\t- Glyph name: Aogonek\tContours detected: 225\tExpected: 2 or 3\n\n\t- Glyph name: Aring\tContours detected: 241\tExpected: 3 or 4\n\n\t- Glyph name: Atilde\tContours detected: 262\tExpected: 3\n\n\t- Glyph name: B\tContours detected: 249\tExpected: 2 or 3\n\n\t- Glyph name: C\tContours detected: 203\tExpected: 1\n\n\t- Glyph name: Cacute\tContours detected: 234\tExpected: 2\n\n\t- Glyph name: Ccaron\tContours detected: 239\tExpected: 2\n\n\t- Glyph name: Ccedilla\tContours detected: 224\tExpected: 1 or 2\n\n\t- Glyph name: Ccircumflex\tContours detected: 242\tExpected: 2\n\n\t- Glyph name: Cdotaccent\tContours detected: 231\tExpected: 2\n\n\t- Glyph name: D\tContours detected: 239\tExpected: 2\n\n\t- Glyph name: Dcaron\tContours detected: 275\tExpected: 3\n\n\t- Glyph name: Dcroat\tContours detected: 242\tExpected: 2\n\n\t- Glyph name: E\tContours detected: 230\tExpected: 1\n\n\t- Glyph name: Eacute\tContours detected: 261\tExpected: 2\n\n\t- Glyph name: Ebreve\tContours detected: 266\tExpected: 2\n\n\t- Glyph name: Ecaron\tContours detected: 266\tExpected: 2\n\n\t- Glyph name: Ecircumflex\tContours detected: 269\tExpected: 2\n\n\t- Glyph name: Edieresis\tContours detected: 271\tExpected: 3\n\n\t- Glyph name: Edotaccent\tContours detected: 258\tExpected: 2\n\n\t- Glyph name: Egrave\tContours detected: 261\tExpected: 2\n\n\t- Glyph name: Emacron\tContours detected: 272\tExpected: 2\n\n\t- Glyph name: Eng\tContours detected: 283\tExpected: 1\n\n\t- Glyph name: Eogonek\tContours detected: 279\tExpected: 1 or 2\n\n\t- Glyph name: Eth\tContours detected: 252\tExpected: 2\n\n\t- Glyph name: Euro\tContours detected: 237\tExpected: 1 or 2\n\n\t- Glyph name: F\tContours detected: 217\tExpected: 1\n\n\t- Glyph name: G\tContours detected: 243\tExpected: 1\n\n\t- Glyph name: Gbreve\tContours detected: 279\tExpected: 2\n\n\t- Glyph name: Gcircumflex\tContours detected: 282\tExpected: 2\n\n\t- Glyph name: Gdotaccent\tContours detected: 271\tExpected: 2\n\n\t- Glyph name: H\tContours detected: 243\tExpected: 1\n\n\t- Glyph name: Hbar\tContours detected: 257\tExpected: 2\n\n\t- Glyph name: Hcircumflex\tContours detected: 282\tExpected: 2\n\n\t- Glyph name: I\tContours detected: 111\tExpected: 1\n\n\t- Glyph name: IJ\tContours detected: 231\tExpected: 1 or 2\n\n\t- Glyph name: Iacute\tContours detected: 142\tExpected: 2\n\n\t- Glyph name: Ibreve\tContours detected: 147\tExpected: 2\n\n\t- Glyph name: Icircumflex\tContours detected: 150\tExpected: 2\n\n\t- Glyph name: Idieresis\tContours detected: 152\tExpected: 3\n\n\t- Glyph name: Idotaccent\tContours detected: 139\tExpected: 2\n\n\t- Glyph name: Igrave\tContours detected: 142\tExpected: 2\n\n\t- Glyph name: Imacron\tContours detected: 153\tExpected: 2\n\n\t- Glyph name: Iogonek\tContours detected: 142\tExpected: 1 or 2\n\n\t- Glyph name: Itilde\tContours detected: 155\tExpected: 2\n\n\t- Glyph name: J\tContours detected: 193\tExpected: 1\n\n\t- Glyph name: Jcircumflex\tContours detected: 232\tExpected: 2\n\n\t- Glyph name: K\tContours detected: 256\tExpected: 1 or 2\n\n\t- Glyph name: L\tContours detected: 156\tExpected: 1\n\n\t- Glyph name: Lacute\tContours detected: 187\tExpected: 2\n\n\t- Glyph name: Lcaron\tContours detected: 181\tExpected: 2\n\n\t- Glyph name: Ldot\tContours detected: 179\tExpected: 2\n\n\t- Glyph name: Lslash\tContours detected: 195\tExpected: 1\n\n\t- Glyph name: M\tContours detected: 255\tExpected: 1\n\n\t- Glyph name: N\tContours detected: 239\tExpected: 1\n\n\t- Glyph name: Nacute\tContours detected: 270\tExpected: 2\n\n\t- Glyph name: Ncaron\tContours detected: 275\tExpected: 2\n\n\t- Glyph name: Ntilde\tContours detected: 283\tExpected: 2\n\n\t- Glyph name: O\tContours detected: 223\tExpected: 2\n\n\t- Glyph name: OE\tContours detected: 331\tExpected: 2\n\n\t- Glyph name: Oacute\tContours detected: 254\tExpected: 3\n\n\t- Glyph name: Ocircumflex\tContours detected: 262\tExpected: 3\n\n\t- Glyph name: Odieresis\tContours detected: 264\tExpected: 4\n\n\t- Glyph name: Ograve\tContours detected: 254\tExpected: 3\n\n\t- Glyph name: Ohungarumlaut\tContours detected: 271\tExpected: 4\n\n\t- Glyph name: Omacron\tContours detected: 265\tExpected: 3\n\n\t- Glyph name: Oslash\tContours detected: 256\tExpected: 2 or 3\n\n\t- Glyph name: Oslashacute\tContours detected: 287\tExpected: 4\n\n\t- Glyph name: Otilde\tContours detected: 267\tExpected: 3\n\n\t- Glyph name: P\tContours detected: 196\tExpected: 1 or 2\n\n\t- Glyph name: Q\tContours detected: 243\tExpected: 2\n\n\t- Glyph name: R\tContours detected: 229\tExpected: 1 or 2\n\n\t- Glyph name: Racute\tContours detected: 260\tExpected: 3\n\n\t- Glyph name: Rcaron\tContours detected: 265\tExpected: 3\n\n\t- Glyph name: S\tContours detected: 240\tExpected: 1\n\n\t- Glyph name: Sacute\tContours detected: 271\tExpected: 2\n\n\t- Glyph name: Scaron\tContours detected: 276\tExpected: 2\n\n\t- Glyph name: Scircumflex\tContours detected: 279\tExpected: 2\n\n\t- Glyph name: T\tContours detected: 184\tExpected: 1\n\n\t- Glyph name: Tbar\tContours detected: 186\tExpected: 1\n\n\t- Glyph name: Tcaron\tContours detected: 220\tExpected: 2\n\n\t- Glyph name: Thorn\tContours detected: 197\tExpected: 1 or 2\n\n\t- Glyph name: U\tContours detected: 226\tExpected: 1\n\n\t- Glyph name: Uacute\tContours detected: 257\tExpected: 2\n\n\t- Glyph name: Ubreve\tContours detected: 262\tExpected: 2\n\n\t- Glyph name: Ucircumflex\tContours detected: 265\tExpected: 2\n\n\t- Glyph name: Udieresis\tContours detected: 267\tExpected: 3\n\n\t- Glyph name: Ugrave\tContours detected: 257\tExpected: 2\n\n\t- Glyph name: Uhungarumlaut\tContours detected: 274\tExpected: 3\n\n\t- Glyph name: Umacron\tContours detected: 268\tExpected: 2\n\n\t- Glyph name: Uogonek\tContours detected: 241\tExpected: 1\n\n\t- Glyph name: Uring\tContours detected: 249\tExpected: 3\n\n\t- Glyph name: Utilde\tContours detected: 270\tExpected: 2\n\n\t- Glyph name: V\tContours detected: 191\tExpected: 1\n\n\t- Glyph name: W\tContours detected: 264\tExpected: 1 or 2\n\n\t- Glyph name: Wacute\tContours detected: 295\tExpected: 2\n\n\t- Glyph name: Wcircumflex\tContours detected: 303\tExpected: 2\n\n\t- Glyph name: Wdieresis\tContours detected: 305\tExpected: 3\n\n\t- Glyph name: Wgrave\tContours detected: 295\tExpected: 2\n\n\t- Glyph name: X\tContours detected: 215\tExpected: 1\n\n\t- Glyph name: Y\tContours detected: 166\tExpected: 1\n\n\t- Glyph name: Yacute\tContours detected: 197\tExpected: 2\n\n\t- Glyph name: Ycircumflex\tContours detected: 205\tExpected: 2\n\n\t- Glyph name: Ydieresis\tContours detected: 207\tExpected: 3\n\n\t- Glyph name: Ygrave\tContours detected: 197\tExpected: 2\n\n\t- Glyph name: Z\tContours detected: 217\tExpected: 1\n\n\t- Glyph name: Zacute\tContours detected: 248\tExpected: 2\n\n\t- Glyph name: Zcaron\tContours detected: 253\tExpected: 2\n\n\t- Glyph name: Zdotaccent\tContours detected: 245\tExpected: 2\n\n\t- Glyph name: a\tContours detected: 163\tExpected: 2\n\n\t- Glyph name: aacute\tContours detected: 195\tExpected: 3\n\n\t- Glyph name: abreve\tContours detected: 197\tExpected: 3\n\n\t- Glyph name: acircumflex\tContours detected: 193\tExpected: 3\n\n\t- Glyph name: acute\tContours detected: 32\tExpected: 1\n\n\t- Glyph name: adieresis\tContours detected: 211\tExpected: 4\n\n\t- Glyph name: ae\tContours detected: 243\tExpected: 3\n\n\t- Glyph name: aeacute\tContours detected: 275\tExpected: 4\n\n\t- Glyph name: agrave\tContours detected: 189\tExpected: 3\n\n\t- Glyph name: amacron\tContours detected: 209\tExpected: 3\n\n\t- Glyph name: ampersand\tContours detected: 231\tExpected: 1, 2 or 3\n\n\t- Glyph name: aogonek\tContours detected: 173\tExpected: 2\n\n\t- Glyph name: approxequal\tContours detected: 114\tExpected: 2\n\n\t- Glyph name: aring\tContours detected: 190\tExpected: 4\n\n\t- Glyph name: asciicircum\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: asciitilde\tContours detected: 63\tExpected: 1\n\n\t- Glyph name: asterisk\tContours detected: 72\tExpected: 1 or 4\n\n\t- Glyph name: at\tContours detected: 263\tExpected: 2\n\n\t- Glyph name: atilde\tContours detected: 208\tExpected: 3\n\n\t- Glyph name: b\tContours detected: 190\tExpected: 2\n\n\t- Glyph name: backslash\tContours detected: 110\tExpected: 1\n\n\t- Glyph name: bar\tContours detected: 136\tExpected: 1\n\n\t- Glyph name: braceleft\tContours detected: 150\tExpected: 1\n\n\t- Glyph name: braceright\tContours detected: 151\tExpected: 1\n\n\t- Glyph name: bracketleft\tContours detected: 162\tExpected: 1\n\n\t- Glyph name: bracketright\tContours detected: 181\tExpected: 1\n\n\t- Glyph name: breve\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: brokenbar\tContours detected: 87\tExpected: 2\n\n\t- Glyph name: bullet\tContours detected: 39\tExpected: 1\n\n\t- Glyph name: c\tContours detected: 133\tExpected: 1\n\n\t- Glyph name: cacute\tContours detected: 165\tExpected: 2\n\n\t- Glyph name: caron\tContours detected: 37\tExpected: 1\n\n\t- Glyph name: ccaron\tContours detected: 170\tExpected: 2\n\n\t- Glyph name: ccedilla\tContours detected: 148\tExpected: 1 or 2\n\n\t- Glyph name: ccircumflex\tContours detected: 163\tExpected: 2\n\n\t- Glyph name: cdotaccent\tContours detected: 155\tExpected: 2\n\n\t- Glyph name: cedilla\tContours detected: 24\tExpected: 1\n\n\t- Glyph name: cent\tContours detected: 155\tExpected: 1 or 2\n\n\t- Glyph name: circumflex\tContours detected: 30\tExpected: 1\n\n\t- Glyph name: colon\tContours detected: 69\tExpected: 2\n\n\t- Glyph name: comma\tContours detected: 37\tExpected: 1\n\n\t- Glyph name: copyright\tContours detected: 197\tExpected: 3\n\n\t- Glyph name: currency\tContours detected: 153\tExpected: 2\n\n\t- Glyph name: d\tContours detected: 193\tExpected: 2\n\n\t- Glyph name: dagger\tContours detected: 123\tExpected: 1 or 2\n\n\t- Glyph name: daggerdbl\tContours detected: 150\tExpected: 1 or 3\n\n\t- Glyph name: dcaron\tContours detected: 218\tExpected: 3\n\n\t- Glyph name: dcroat\tContours detected: 212\tExpected: 2\n\n\t- Glyph name: degree\tContours detected: 71\tExpected: 2\n\n\t- Glyph name: dieresis\tContours detected: 48\tExpected: 2\n\n\t- Glyph name: divide\tContours detected: 98\tExpected: 3\n\n\t- Glyph name: dollar\tContours detected: 224\tExpected: 1, 3 or 5\n\n\t- Glyph name: dotaccent\tContours detected: 22\tExpected: 1\n\n\t- Glyph name: dotlessi\tContours detected: 79\tExpected: 1\n\n\t- Glyph name: e\tContours detected: 187\tExpected: 2\n\n\t- Glyph name: eacute\tContours detected: 219\tExpected: 3\n\n\t- Glyph name: ebreve\tContours detected: 221\tExpected: 3\n\n\t- Glyph name: ecaron\tContours detected: 224\tExpected: 3\n\n\t- Glyph name: ecircumflex\tContours detected: 217\tExpected: 3\n\n\t- Glyph name: edieresis\tContours detected: 235\tExpected: 4\n\n\t- Glyph name: edotaccent\tContours detected: 209\tExpected: 3\n\n\t- Glyph name: egrave\tContours detected: 213\tExpected: 3\n\n\t- Glyph name: eight\tContours detected: 218\tExpected: 3\n\n\t- Glyph name: ellipsis\tContours detected: 115\tExpected: 3\n\n\t- Glyph name: emacron\tContours detected: 233\tExpected: 3\n\n\t- Glyph name: emdash\tContours detected: 80\tExpected: 1\n\n\t- Glyph name: endash\tContours detected: 57\tExpected: 1\n\n\t- Glyph name: eng\tContours detected: 212\tExpected: 1\n\n\t- Glyph name: eogonek\tContours detected: 179\tExpected: 2\n\n\t- Glyph name: equal\tContours detected: 102\tExpected: 2\n\n\t- Glyph name: estimated\tContours detected: 177\tExpected: 2\n\n\t- Glyph name: eth\tContours detected: 199\tExpected: 2\n\n\t- Glyph name: exclam\tContours detected: 122\tExpected: 2\n\n\t- Glyph name: exclamdown\tContours detected: 102\tExpected: 2\n\n\t- Glyph name: f\tContours detected: 149\tExpected: 1\n\n\t- Glyph name: fi\tContours detected: 311\tExpected: 3\n\n\t- Glyph name: five\tContours detected: 255\tExpected: 1\n\n\t- Glyph name: fiveeighths\tContours detected: 201\tExpected: 5\n\n\t- Glyph name: fl\tContours detected: 293\tExpected: 2\n\n\t- Glyph name: four\tContours detected: 201\tExpected: 1 or 2\n\n\t- Glyph name: fraction\tContours detected: 73\tExpected: 1\n\n\t- Glyph name: g\tContours detected: 219\tExpected: 2 or 3\n\n\t- Glyph name: gbreve\tContours detected: 253\tExpected: 3 or 4\n\n\t- Glyph name: gcircumflex\tContours detected: 249\tExpected: 3 or 4\n\n\t- Glyph name: gdotaccent\tContours detected: 241\tExpected: 3 or 4\n\n\t- Glyph name: germandbls\tContours detected: 221\tExpected: 1\n\n\t- Glyph name: grave\tContours detected: 26\tExpected: 1\n\n\t- Glyph name: greater\tContours detected: 106\tExpected: 1\n\n\t- Glyph name: greaterequal\tContours detected: 141\tExpected: 2\n\n\t- Glyph name: guillemotleft\tContours detected: 118\tExpected: 2\n\n\t- Glyph name: guillemotright\tContours detected: 122\tExpected: 2\n\n\t- Glyph name: guilsinglleft\tContours detected: 67\tExpected: 1\n\n\t- Glyph name: guilsinglright\tContours detected: 58\tExpected: 1\n\n\t- Glyph name: h\tContours detected: 200\tExpected: 1\n\n\t- Glyph name: hbar\tContours detected: 214\tExpected: 1\n\n\t- Glyph name: hcircumflex\tContours detected: 230\tExpected: 2\n\n\t- Glyph name: hungarumlaut\tContours detected: 44\tExpected: 2\n\n\t- Glyph name: hyphen\tContours detected: 48\tExpected: 1\n\n\t- Glyph name: i\tContours detected: 105\tExpected: 2\n\n\t- Glyph name: iacute\tContours detected: 111\tExpected: 2\n\n\t- Glyph name: ibreve\tContours detected: 113\tExpected: 2\n\n\t- Glyph name: icircumflex\tContours detected: 109\tExpected: 2\n\n\t- Glyph name: idieresis\tContours detected: 127\tExpected: 3\n\n\t- Glyph name: igrave\tContours detected: 105\tExpected: 2\n\n\t- Glyph name: ij\tContours detected: 241\tExpected: 3 or 4\n\n\t- Glyph name: imacron\tContours detected: 125\tExpected: 2\n\n\t- Glyph name: infinity\tContours detected: 175\tExpected: 3\n\n\t- Glyph name: integral\tContours detected: 129\tExpected: 1\n\n\t- Glyph name: iogonek\tContours detected: 128\tExpected: 2 or 3\n\n\t- Glyph name: itilde\tContours detected: 124\tExpected: 2\n\n\t- Glyph name: j\tContours detected: 136\tExpected: 2\n\n\t- Glyph name: jcircumflex\tContours detected: 190\tExpected: 2\n\n\t- Glyph name: k\tContours detected: 218\tExpected: 1 or 2\n\n\t- Glyph name: kgreenlandic\tContours detected: 163\tExpected: 1 or 2\n\n\t- Glyph name: l\tContours detected: 106\tExpected: 1\n\n\t- Glyph name: lacute\tContours detected: 138\tExpected: 2\n\n\t- Glyph name: lcaron\tContours detected: 131\tExpected: 2\n\n\t- Glyph name: ldot\tContours detected: 131\tExpected: 2\n\n\t- Glyph name: less\tContours detected: 108\tExpected: 1\n\n\t- Glyph name: lessequal\tContours detected: 146\tExpected: 2\n\n\t- Glyph name: logicalnot\tContours detected: 62\tExpected: 1\n\n\t- Glyph name: longs\tContours detected: 132\tExpected: 1\n\n\t- Glyph name: lozenge\tContours detected: 147\tExpected: 2\n\n\t- Glyph name: lslash\tContours detected: 112\tExpected: 1\n\n\t- Glyph name: m\tContours detected: 264\tExpected: 1\n\n\t- Glyph name: macron\tContours detected: 46\tExpected: 1\n\n\t- Glyph name: minus\tContours detected: 59\tExpected: 1\n\n\t- Glyph name: multiply\tContours detected: 98\tExpected: 1\n\n\t- Glyph name: n\tContours detected: 167\tExpected: 1\n\n\t- Glyph name: nacute\tContours detected: 199\tExpected: 2\n\n\t- Glyph name: napostrophe\tContours detected: 210\tExpected: 2\n\n\t- Glyph name: ncaron\tContours detected: 204\tExpected: 2\n\n\t- Glyph name: nine\tContours detected: 197\tExpected: 1 or 2\n\n\t- Glyph name: notequal\tContours detected: 134\tExpected: 1\n\n\t- Glyph name: ntilde\tContours detected: 212\tExpected: 2\n\n\t- Glyph name: numbersign\tContours detected: 182\tExpected: 2\n\n\t- Glyph name: o\tContours detected: 151\tExpected: 2\n\n\t- Glyph name: oacute\tContours detected: 183\tExpected: 3\n\n\t- Glyph name: ocircumflex\tContours detected: 181\tExpected: 3\n\n\t- Glyph name: odieresis\tContours detected: 199\tExpected: 4\n\n\t- Glyph name: oe\tContours detected: 265\tExpected: 3\n\n\t- Glyph name: ogonek\tContours detected: 38\tExpected: 1\n\n\t- Glyph name: ograve\tContours detected: 177\tExpected: 3\n\n\t- Glyph name: ohungarumlaut\tContours detected: 195\tExpected: 4\n\n\t- Glyph name: omacron\tContours detected: 197\tExpected: 3\n\n\t- Glyph name: one\tContours detected: 134\tExpected: 1\n\n\t- Glyph name: oneeighth\tContours detected: 180\tExpected: 5\n\n\t- Glyph name: onehalf\tContours detected: 179\tExpected: 3\n\n\t- Glyph name: onequarter\tContours detected: 167\tExpected: 3 or 4\n\n\t- Glyph name: ordfeminine\tContours detected: 50\tExpected: 2 or 3\n\n\t- Glyph name: ordmasculine\tContours detected: 48\tExpected: 2 or 3\n\n\t- Glyph name: oslash\tContours detected: 180\tExpected: 3\n\n\t- Glyph name: oslashacute\tContours detected: 212\tExpected: 4\n\n\t- Glyph name: otilde\tContours detected: 196\tExpected: 3\n\n\t- Glyph name: p\tContours detected: 225\tExpected: 2\n\n\t- Glyph name: paragraph\tContours detected: 218\tExpected: 1, 2 or 3\n\n\t- Glyph name: parenleft\tContours detected: 144\tExpected: 1\n\n\t- Glyph name: parenright\tContours detected: 159\tExpected: 1\n\n\t- Glyph name: partialdiff\tContours detected: 180\tExpected: 2\n\n\t- Glyph name: percent\tContours detected: 208\tExpected: 5\n\n\t- Glyph name: period\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: periodcentered\tContours detected: 41\tExpected: 1\n\n\t- Glyph name: perthousand\tContours detected: 285\tExpected: 6 or 7\n\n\t- Glyph name: plus\tContours detected: 101\tExpected: 1\n\n\t- Glyph name: plusminus\tContours detected: 146\tExpected: 1 or 2\n\n\t- Glyph name: product\tContours detected: 306\tExpected: 1\n\n\t- Glyph name: q\tContours detected: 201\tExpected: 2\n\n\t- Glyph name: question\tContours detected: 156\tExpected: 2\n\n\t- Glyph name: questiondown\tContours detected: 156\tExpected: 2\n\n\t- Glyph name: quotedbl\tContours detected: 75\tExpected: 2\n\n\t- Glyph name: quotedblbase\tContours detected: 81\tExpected: 2\n\n\t- Glyph name: quotedblleft\tContours detected: 75\tExpected: 2\n\n\t- Glyph name: quotedblright\tContours detected: 74\tExpected: 2\n\n\t- Glyph name: quoteleft\tContours detected: 38\tExpected: 1\n\n\t- Glyph name: quoteright\tContours detected: 39\tExpected: 1\n\n\t- Glyph name: quotesinglbase\tContours detected: 37\tExpected: 1\n\n\t- Glyph name: quotesingle\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: r\tContours detected: 108\tExpected: 1\n\n\t- Glyph name: racute\tContours detected: 140\tExpected: 2\n\n\t- Glyph name: radical\tContours detected: 181\tExpected: 1\n\n\t- Glyph name: rcaron\tContours detected: 145\tExpected: 2\n\n\t- Glyph name: registered\tContours detected: 197\tExpected: 3 or 4\n\n\t- Glyph name: ring\tContours detected: 27\tExpected: 2\n\n\t- Glyph name: s\tContours detected: 146\tExpected: 1\n\n\t- Glyph name: sacute\tContours detected: 178\tExpected: 2\n\n\t- Glyph name: scaron\tContours detected: 183\tExpected: 2\n\n\t- Glyph name: scircumflex\tContours detected: 176\tExpected: 2\n\n\t- Glyph name: section\tContours detected: 229\tExpected: 2\n\n\t- Glyph name: semicolon\tContours detected: 74\tExpected: 2\n\n\t- Glyph name: seven\tContours detected: 159\tExpected: 1\n\n\t- Glyph name: seveneighths\tContours detected: 189\tExpected: 5\n\n\t- Glyph name: six\tContours detected: 213\tExpected: 1 or 2\n\n\t- Glyph name: slash\tContours detected: 112\tExpected: 1\n\n\t- Glyph name: sterling\tContours detected: 235\tExpected: 1 or 2\n\n\t- Glyph name: summation\tContours detected: 247\tExpected: 1\n\n\t- Glyph name: t\tContours detected: 140\tExpected: 1\n\n\t- Glyph name: tbar\tContours detected: 165\tExpected: 1\n\n\t- Glyph name: tcaron\tContours detected: 165\tExpected: 2\n\n\t- Glyph name: thorn\tContours detected: 224\tExpected: 2\n\n\t- Glyph name: three\tContours detected: 204\tExpected: 1\n\n\t- Glyph name: threeeighths\tContours detected: 198\tExpected: 5\n\n\t- Glyph name: threequarters\tContours detected: 185\tExpected: 3 or 4\n\n\t- Glyph name: tilde\tContours detected: 45\tExpected: 1\n\n\t- Glyph name: trademark\tContours detected: 88\tExpected: 2\n\n\t- Glyph name: two\tContours detected: 213\tExpected: 1\n\n\t- Glyph name: u\tContours detected: 170\tExpected: 1\n\n\t- Glyph name: uacute\tContours detected: 202\tExpected: 2\n\n\t- Glyph name: ubreve\tContours detected: 204\tExpected: 2\n\n\t- Glyph name: ucircumflex\tContours detected: 200\tExpected: 2\n\n\t- Glyph name: udieresis\tContours detected: 218\tExpected: 3\n\n\t- Glyph name: ugrave\tContours detected: 196\tExpected: 2\n\n\t- Glyph name: uhungarumlaut\tContours detected: 214\tExpected: 3\n\n\t- Glyph name: umacron\tContours detected: 216\tExpected: 2\n\n\t- Glyph name: underscore\tContours detected: 93\tExpected: 1\n\n\t- Glyph name: uni00B5\tContours detected: 205\tExpected: 1\n\n\t- Glyph name: uni0122\tContours detected: 275\tExpected: 2\n\n\t- Glyph name: uni0123\tContours detected: 253\tExpected: 3 or 4\n\n\t- Glyph name: uni0136\tContours detected: 288\tExpected: 2 or 3\n\n\t- Glyph name: uni0137\tContours detected: 243\tExpected: 2 or 3\n\n\t- Glyph name: uni013B\tContours detected: 188\tExpected: 2\n\n\t- Glyph name: uni013C\tContours detected: 131\tExpected: 2\n\n\t- Glyph name: uni0145\tContours detected: 271\tExpected: 2\n\n\t- Glyph name: uni0146\tContours detected: 192\tExpected: 2\n\n\t- Glyph name: uni0156\tContours detected: 261\tExpected: 3\n\n\t- Glyph name: uni0157\tContours detected: 133\tExpected: 2\n\n\t- Glyph name: uni0218\tContours detected: 272\tExpected: 2\n\n\t- Glyph name: uni0219\tContours detected: 171\tExpected: 2\n\n\t- Glyph name: uni021A\tContours detected: 216\tExpected: 2\n\n\t- Glyph name: uni021B\tContours detected: 165\tExpected: 2\n\n\t- Glyph name: uni0237\tContours detected: 160\tExpected: 1\n\n\t- Glyph name: uni02BC\tContours detected: 25\tExpected: 1\n\n\t- Glyph name: uni0302\tContours detected: 30\tExpected: 1\n\n\t- Glyph name: uni0304\tContours detected: 46\tExpected: 1\n\n\t- Glyph name: uni0306\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: uni0307\tContours detected: 22\tExpected: 1\n\n\t- Glyph name: uni0308\tContours detected: 48\tExpected: 2\n\n\t- Glyph name: uni030A\tContours detected: 27\tExpected: 2\n\n\t- Glyph name: uni030B\tContours detected: 44\tExpected: 2\n\n\t- Glyph name: uni030C\tContours detected: 37\tExpected: 1\n\n\t- Glyph name: uni0312\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: uni0326\tContours detected: 25\tExpected: 1\n\n\t- Glyph name: uni0327\tContours detected: 24\tExpected: 1\n\n\t- Glyph name: uni0328\tContours detected: 38\tExpected: 1\n\n\t- Glyph name: uni0335\tContours detected: 37\tExpected: 1\n\n\t- Glyph name: uni0337\tContours detected: 48\tExpected: 1\n\n\t- Glyph name: uni0338\tContours detected: 53\tExpected: 1\n\n\t- Glyph name: uni0400\tContours detected: 261\tExpected: 2\n\n\t- Glyph name: uni0401\tContours detected: 278\tExpected: 3\n\n\t- Glyph name: uni0402\tContours detected: 257\tExpected: 1\n\n\t- Glyph name: uni0403\tContours detected: 184\tExpected: 2\n\n\t- Glyph name: uni0404\tContours detected: 208\tExpected: 1\n\n\t- Glyph name: uni0405\tContours detected: 240\tExpected: 1\n\n\t- Glyph name: uni0406\tContours detected: 111\tExpected: 1\n\n\t- Glyph name: uni0407\tContours detected: 159\tExpected: 3\n\n\t- Glyph name: uni0408\tContours detected: 193\tExpected: 1\n\n\t- Glyph name: uni0409\tContours detected: 325\tExpected: 2\n\n\t- Glyph name: uni040A\tContours detected: 366\tExpected: 2\n\n\t- Glyph name: uni040B\tContours detected: 235\tExpected: 1\n\n\t- Glyph name: uni040C\tContours detected: 255\tExpected: 2\n\n\t- Glyph name: uni040D\tContours detected: 289\tExpected: 2\n\n\t- Glyph name: uni040E\tContours detected: 218\tExpected: 2\n\n\t- Glyph name: uni040F\tContours detected: 246\tExpected: 1\n\n\t- Glyph name: uni0410\tContours detected: 218\tExpected: 2\n\n\t- Glyph name: uni0411\tContours detected: 234\tExpected: 2\n\n\t- Glyph name: uni0412\tContours detected: 249\tExpected: 3\n\n\t- Glyph name: uni0413\tContours detected: 153\tExpected: 1\n\n\t- Glyph name: uni0414\tContours detected: 309\tExpected: 2\n\n\t- Glyph name: uni0415\tContours detected: 230\tExpected: 1\n\n\t- Glyph name: uni0416\tContours detected: 347\tExpected: 1\n\n\t- Glyph name: uni0417\tContours detected: 221\tExpected: 1\n\n\t- Glyph name: uni0418\tContours detected: 258\tExpected: 1\n\n\t- Glyph name: uni0419\tContours detected: 294\tExpected: 2\n\n\t- Glyph name: uni041A\tContours detected: 224\tExpected: 1\n\n\t- Glyph name: uni041B\tContours detected: 267\tExpected: 1\n\n\t- Glyph name: uni041C\tContours detected: 255\tExpected: 1\n\n\t- Glyph name: uni041D\tContours detected: 243\tExpected: 1\n\n\t- Glyph name: uni041E\tContours detected: 223\tExpected: 2\n\n\t- Glyph name: uni041F\tContours detected: 231\tExpected: 1\n\n\t- Glyph name: uni0420\tContours detected: 196\tExpected: 1 or 2\n\n\t- Glyph name: uni0421\tContours detected: 203\tExpected: 1\n\n\t- Glyph name: uni0422\tContours detected: 184\tExpected: 1\n\n\t- Glyph name: uni0423\tContours detected: 182\tExpected: 1\n\n\t- Glyph name: uni0424\tContours detected: 298\tExpected: 3\n\n\t- Glyph name: uni0425\tContours detected: 215\tExpected: 1\n\n\t- Glyph name: uni0426\tContours detected: 263\tExpected: 1\n\n\t- Glyph name: uni0427\tContours detected: 203\tExpected: 1\n\n\t- Glyph name: uni0428\tContours detected: 338\tExpected: 1\n\n\t- Glyph name: uni0429\tContours detected: 367\tExpected: 1\n\n\t- Glyph name: uni042A\tContours detected: 210\tExpected: 2\n\n\t- Glyph name: uni042B\tContours detected: 308\tExpected: 3\n\n\t- Glyph name: uni042C\tContours detected: 211\tExpected: 2\n\n\t- Glyph name: uni042D\tContours detected: 216\tExpected: 1\n\n\t- Glyph name: uni042E\tContours detected: 346\tExpected: 2\n\n\t- Glyph name: uni042F\tContours detected: 232\tExpected: 2\n\n\t- Glyph name: uni0430\tContours detected: 163\tExpected: 2\n\n\t- Glyph name: uni0431\tContours detected: 206\tExpected: 2\n\n\t- Glyph name: uni0432\tContours detected: 193\tExpected: 3\n\n\t- Glyph name: uni0433\tContours detected: 98\tExpected: 1\n\n\t- Glyph name: uni0434\tContours detected: 237\tExpected: 2\n\n\t- Glyph name: uni0435\tContours detected: 187\tExpected: 2\n\n\t- Glyph name: uni0436\tContours detected: 242\tExpected: 1\n\n\t- Glyph name: uni0437\tContours detected: 143\tExpected: 1\n\n\t- Glyph name: uni0438\tContours detected: 181\tExpected: 1\n\n\t- Glyph name: uni0439\tContours detected: 219\tExpected: 2\n\n\t- Glyph name: uni043A\tContours detected: 164\tExpected: 1\n\n\t- Glyph name: uni043B\tContours detected: 155\tExpected: 1\n\n\t- Glyph name: uni043C\tContours detected: 183\tExpected: 1\n\n\t- Glyph name: uni043D\tContours detected: 167\tExpected: 1\n\n\t- Glyph name: uni043E\tContours detected: 151\tExpected: 2\n\n\t- Glyph name: uni043F\tContours detected: 160\tExpected: 1\n\n\t- Glyph name: uni0440\tContours detected: 225\tExpected: 2\n\n\t- Glyph name: uni0441\tContours detected: 133\tExpected: 1\n\n\t- Glyph name: uni0442\tContours detected: 119\tExpected: 1\n\n\t- Glyph name: uni0443\tContours detected: 170\tExpected: 1\n\n\t- Glyph name: uni0444\tContours detected: 275\tExpected: 3\n\n\t- Glyph name: uni0445\tContours detected: 147\tExpected: 1\n\n\t- Glyph name: uni0446\tContours detected: 221\tExpected: 1\n\n\t- Glyph name: uni0447\tContours detected: 148\tExpected: 1\n\n\t- Glyph name: uni0448\tContours detected: 225\tExpected: 1\n\n\t- Glyph name: uni0449\tContours detected: 240\tExpected: 1\n\n\t- Glyph name: uni044A\tContours detected: 152\tExpected: 2\n\n\t- Glyph name: uni044B\tContours detected: 204\tExpected: 3\n\n\t- Glyph name: uni044C\tContours detected: 132\tExpected: 2\n\n\t- Glyph name: uni044D\tContours detected: 150\tExpected: 1\n\n\t- Glyph name: uni044E\tContours detected: 229\tExpected: 2\n\n\t- Glyph name: uni044F\tContours detected: 158\tExpected: 2\n\n\t- Glyph name: uni0450\tContours detected: 213\tExpected: 3\n\n\t- Glyph name: uni0451\tContours detected: 235\tExpected: 4\n\n\t- Glyph name: uni0452\tContours detected: 235\tExpected: 1\n\n\t- Glyph name: uni0453\tContours detected: 130\tExpected: 2\n\n\t- Glyph name: uni0454\tContours detected: 135\tExpected: 1\n\n\t- Glyph name: uni0455\tContours detected: 146\tExpected: 1\n\n\t- Glyph name: uni0456\tContours detected: 105\tExpected: 2\n\n\t- Glyph name: uni0457\tContours detected: 127\tExpected: 3\n\n\t- Glyph name: uni0458\tContours detected: 136\tExpected: 2\n\n\t- Glyph name: uni0459\tContours detected: 211\tExpected: 2\n\n\t- Glyph name: uni045A\tContours detected: 220\tExpected: 2\n\n\t- Glyph name: uni045B\tContours detected: 213\tExpected: 1\n\n\t- Glyph name: uni045C\tContours detected: 196\tExpected: 2\n\n\t- Glyph name: uni045D\tContours detected: 207\tExpected: 2\n\n\t- Glyph name: uni045E\tContours detected: 208\tExpected: 2\n\n\t- Glyph name: uni045F\tContours detected: 184\tExpected: 1 or 2\n\n\t- Glyph name: uni0462\tContours detected: 211\tExpected: 2\n\n\t- Glyph name: uni0463\tContours detected: 184\tExpected: 2\n\n\t- Glyph name: uni046A\tContours detected: 320\tExpected: 2\n\n\t- Glyph name: uni046B\tContours detected: 246\tExpected: 2\n\n\t- Glyph name: uni0472\tContours detected: 234\tExpected: 3\n\n\t- Glyph name: uni0473\tContours detected: 154\tExpected: 3\n\n\t- Glyph name: uni0474\tContours detected: 209\tExpected: 1\n\n\t- Glyph name: uni0475\tContours detected: 121\tExpected: 1\n\n\t- Glyph name: uni0490\tContours detected: 170\tExpected: 1\n\n\t- Glyph name: uni0491\tContours detected: 118\tExpected: 1\n\n\t- Glyph name: uni0492\tContours detected: 166\tExpected: 1\n\n\t- Glyph name: uni0493\tContours detected: 111\tExpected: 1\n\n\t- Glyph name: uni0494\tContours detected: 234\tExpected: 1\n\n\t- Glyph name: uni0495\tContours detected: 172\tExpected: 1\n\n\t- Glyph name: uni0496\tContours detected: 372\tExpected: 1 or 2\n\n\t- Glyph name: uni0497\tContours detected: 273\tExpected: 1 or 2\n\n\t- Glyph name: uni0498\tContours detected: 220\tExpected: 1 or 2\n\n\t- Glyph name: uni0499\tContours detected: 151\tExpected: 1 or 2\n\n\t- Glyph name: uni049A\tContours detected: 261\tExpected: 1 or 2\n\n\t- Glyph name: uni049B\tContours detected: 192\tExpected: 1 or 2\n\n\t- Glyph name: uni049C\tContours detected: 249\tExpected: 1\n\n\t- Glyph name: uni049D\tContours detected: 186\tExpected: 1\n\n\t- Glyph name: uni04A0\tContours detected: 245\tExpected: 1\n\n\t- Glyph name: uni04A1\tContours detected: 180\tExpected: 1\n\n\t- Glyph name: uni04A2\tContours detected: 310\tExpected: 1 or 2\n\n\t- Glyph name: uni04A3\tContours detected: 222\tExpected: 1 or 2\n\n\t- Glyph name: uni04A4\tContours detected: 266\tExpected: 1\n\n\t- Glyph name: uni04A5\tContours detected: 206\tExpected: 1\n\n\t- Glyph name: uni04AA\tContours detected: 224\tExpected: 1 or 2\n\n\t- Glyph name: uni04AB\tContours detected: 157\tExpected: 1 or 2\n\n\t- Glyph name: uni04B6\tContours detected: 258\tExpected: 1 or 2\n\n\t- Glyph name: uni04B7\tContours detected: 178\tExpected: 1 or 2\n\n\t- Glyph name: uni04B8\tContours detected: 204\tExpected: 1\n\n\t- Glyph name: uni04B9\tContours detected: 160\tExpected: 1\n\n\t- Glyph name: uni04BA\tContours detected: 221\tExpected: 1\n\n\t- Glyph name: uni04BB\tContours detected: 200\tExpected: 1\n\n\t- Glyph name: uni04C0\tContours detected: 111\tExpected: 1\n\n\t- Glyph name: uni04C1\tContours detected: 383\tExpected: 2\n\n\t- Glyph name: uni04C2\tContours detected: 280\tExpected: 2\n\n\t- Glyph name: uni04CB\tContours detected: 223\tExpected: 1 or 2\n\n\t- Glyph name: uni04CC\tContours detected: 167\tExpected: 1 or 2\n\n\t- Glyph name: uni04CF\tContours detected: 106\tExpected: 1\n\n\t- Glyph name: uni04D0\tContours detected: 254\tExpected: 3\n\n\t- Glyph name: uni04D1\tContours detected: 201\tExpected: 3\n\n\t- Glyph name: uni04D2\tContours detected: 266\tExpected: 4\n\n\t- Glyph name: uni04D3\tContours detected: 211\tExpected: 4\n\n\t- Glyph name: uni04D4\tContours detected: 319\tExpected: 2\n\n\t- Glyph name: uni04D5\tContours detected: 243\tExpected: 3\n\n\t- Glyph name: uni04D6\tContours detected: 266\tExpected: 2\n\n\t- Glyph name: uni04D7\tContours detected: 225\tExpected: 3\n\n\t- Glyph name: uni04D8\tContours detected: 269\tExpected: 2\n\n\t- Glyph name: uni04D9\tContours detected: 159\tExpected: 2\n\n\t- Glyph name: uni04DC\tContours detected: 395\tExpected: 3\n\n\t- Glyph name: uni04DD\tContours detected: 290\tExpected: 3\n\n\t- Glyph name: uni04DE\tContours detected: 269\tExpected: 3\n\n\t- Glyph name: uni04DF\tContours detected: 191\tExpected: 3\n\n\t- Glyph name: uni04E2\tContours detected: 304\tExpected: 2\n\n\t- Glyph name: uni04E3\tContours detected: 227\tExpected: 2\n\n\t- Glyph name: uni04E4\tContours detected: 306\tExpected: 3\n\n\t- Glyph name: uni04E5\tContours detected: 229\tExpected: 3\n\n\t- Glyph name: uni04E6\tContours detected: 271\tExpected: 4\n\n\t- Glyph name: uni04E7\tContours detected: 199\tExpected: 4\n\n\t- Glyph name: uni04E8\tContours detected: 236\tExpected: 3\n\n\t- Glyph name: uni04E9\tContours detected: 154\tExpected: 3\n\n\t- Glyph name: uni04EE\tContours detected: 228\tExpected: 2\n\n\t- Glyph name: uni04EF\tContours detected: 216\tExpected: 2\n\n\t- Glyph name: uni04F0\tContours detected: 230\tExpected: 3\n\n\t- Glyph name: uni04F1\tContours detected: 218\tExpected: 3\n\n\t- Glyph name: uni04F2\tContours detected: 226\tExpected: 3\n\n\t- Glyph name: uni04F3\tContours detected: 214\tExpected: 3\n\n\t- Glyph name: uni04F4\tContours detected: 251\tExpected: 3\n\n\t- Glyph name: uni04F5\tContours detected: 196\tExpected: 3\n\n\t- Glyph name: uni04F6\tContours detected: 183\tExpected: 1 or 2\n\n\t- Glyph name: uni04F7\tContours detected: 131\tExpected: 1 or 2\n\n\t- Glyph name: uni04F8\tContours detected: 356\tExpected: 5\n\n\t- Glyph name: uni04F9\tContours detected: 252\tExpected: 5\n\n\t- Glyph name: uni051A\tContours detected: 243\tExpected: 2\n\n\t- Glyph name: uni051B\tContours detected: 201\tExpected: 2\n\n\t- Glyph name: uni051C\tContours detected: 264\tExpected: 1\n\n\t- Glyph name: uni051D\tContours detected: 198\tExpected: 1\n\n\t- Glyph name: uni0524\tContours detected: 270\tExpected: 1\n\n\t- Glyph name: uni0525\tContours detected: 191\tExpected: 1\n\n\t- Glyph name: uni1E9E\tContours detected: 234\tExpected: 1\n\n\t- Glyph name: uni20AA\tContours detected: 326\tExpected: 2\n\n\t- Glyph name: uni20AE\tContours detected: 203\tExpected: 1\n\n\t- Glyph name: uni20B4\tContours detected: 203\tExpected: 1 or 2\n\n\t- Glyph name: uni20B8\tContours detected: 183\tExpected: 2\n\n\t- Glyph name: uni20B9\tContours detected: 186\tExpected: 1\n\n\t- Glyph name: uni20BD\tContours detected: 224\tExpected: 2\n\n\t- Glyph name: uni2116\tContours detected: 412\tExpected: 3 or 4\n\n\t- Glyph name: uni2206\tContours detected: 176\tExpected: 2\n\n\t- Glyph name: uni2215\tContours detected: 112\tExpected: 1\n\n\t- Glyph name: uogonek\tContours detected: 193\tExpected: 1\n\n\t- Glyph name: uring\tContours detected: 197\tExpected: 3\n\n\t- Glyph name: utilde\tContours detected: 215\tExpected: 2\n\n\t- Glyph name: v\tContours detected: 123\tExpected: 1\n\n\t- Glyph name: w\tContours detected: 198\tExpected: 1\n\n\t- Glyph name: wacute\tContours detected: 230\tExpected: 2\n\n\t- Glyph name: wcircumflex\tContours detected: 228\tExpected: 2\n\n\t- Glyph name: wdieresis\tContours detected: 246\tExpected: 3\n\n\t- Glyph name: wgrave\tContours detected: 224\tExpected: 2\n\n\t- Glyph name: x\tContours detected: 147\tExpected: 1\n\n\t- Glyph name: y\tContours detected: 182\tExpected: 1\n\n\t- Glyph name: yacute\tContours detected: 214\tExpected: 2\n\n\t- Glyph name: ycircumflex\tContours detected: 212\tExpected: 2\n\n\t- Glyph name: ydieresis\tContours detected: 230\tExpected: 3\n\n\t- Glyph name: yen\tContours detected: 198\tExpected: 1 or 2\n\n\t- Glyph name: ygrave\tContours detected: 208\tExpected: 2\n\n\t- Glyph name: z\tContours detected: 144\tExpected: 1\n\n\t- Glyph name: zacute\tContours detected: 176\tExpected: 2\n\n\t- Glyph name: zcaron\tContours detected: 181\tExpected: 2\n\n\t- Glyph name: zdotaccent\tContours detected: 166\tExpected: 2\n\n\t- Glyph name: zero\tContours detected: 216\tExpected: 2 or 3\n [code: contour-count]", "status": "WARN", "traceback": null}], "rationale": "\n Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only\n be constructured in a handful of ways. This means a glyph's contour count\n will only differ slightly amongst different fonts, e.g a 'g' could either\n be 2 or 3 contours, depending on whether its double story or single story.\n\n However, a quotedbl should have 2 contours, unless the font belongs\n to a display family.\n\n This check currently does not cover variable fonts because there's plenty\n of alternative ways of constructing glyphs with multiple outlines for each\n feature in a VarFont. The expected contour count data for this check is\n currently optimized for the typical construction of glyphs in static fonts.\n ", "result": "WARN"}, {"description": "Does the font contain a soft hyphen?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n The 'Soft Hyphen' character (codepoint 0x00AD) is used to mark\n a hyphenation possibility within a word in the absence of or\n overriding dictionary hyphenation.\n\n It is sometimes designed empty with no width (such as a control character),\n sometimes the same as the traditional hyphen, sometimes double encoded with\n the hyphen.\n\n That being said, it is recommended to not include it in the font at all,\n because discretionary hyphenation should be handled at the level of the\n shaping engine, not the font. Also, even if present, the software would\n not display that character.\n\n More discussion at:\n https://typedrawers.com/discussion/2046/special-dash-things-softhyphen-horizontalbar\n ", "result": "PASS"}, {"description": "Does the font contain chws and vchw features?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cjk_font", "status": "SKIP", "traceback": null}], "rationale": "\n The W3C recommends the addition of chws and vchw features to CJK fonts\n to enhance the spacing of glyphs in environments which do not fully support\n JLREQ layout rules.\n\n The chws_tool utility (https://github.com/googlefonts/chws_tool) can be used\n to add these features automatically.\n ", "result": "SKIP"}, {"description": "Ensure component transforms do not perform scaling or rotation.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No glyphs had components with scaling or rotation", "status": "PASS", "traceback": null}], "rationale": "\n Some families have glyphs which have been constructed by using\n transformed components e.g the 'u' being constructed from a flipped 'n'.\n\n From a designers point of view, this sounds like a win (less work).\n However, such approaches can lead to rasterization issues, such as\n having the 'u' not sitting on the baseline at certain sizes after\n running the font through ttfautohint.\n\n Other issues are outlines that end up reversed when only one dimension\n is flipped while the other isn't.\n\n As of July 2019, Marc Foley observed that ttfautohint assigns cvt values\n to transformed glyphs as if they are not transformed and the result is\n they render very badly, and that vttLib does not support flipped components.\n\n When building the font with fontmake, the problem can be fixed by adding\n this to the command line:\n\n --filter DecomposeTransformedComponentsFilter\n ", "result": "PASS"}, {"description": "Ensure no GPOS7 lookups are present.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has no GPOS7 lookups", "status": "PASS", "traceback": null}], "rationale": "\n Versions of fonttools >=4.14.0 (19 August 2020) perform an optimisation on\n chained contextual lookups, expressing GSUB6 as GSUB5 and GPOS8 and GPOS7\n where possible (when there are no suffixes/prefixes for all rules in\n the lookup).\n\n However, makeotf has never generated these lookup types and they are rare\n in practice. Perhaps before of this, Mac's CoreText shaper does not correctly\n interpret GPOS7, meaning that these lookups will be ignored by the shaper,\n and fonts containing these lookups will have unintended positioning errors.\n\n To fix this warning, rebuild the font with a recent version of fonttools.\n ", "result": "PASS", "severity": 9}, {"description": "Ensure that the font can be rasterized by FreeType.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font can be rasterized by FreeType.", "status": "PASS", "traceback": null}], "rationale": "\n Malformed fonts can cause FreeType to crash.\n ", "result": "PASS", "severity": 10}, {"description": "Font has the proper sfntVersion value?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has the correct sfntVersion value.", "status": "PASS", "traceback": null}], "rationale": "\n OpenType fonts that contain TrueType outlines should use the value of 0x00010000\n for the sfntVersion. OpenType fonts containing CFF data (version 1 or 2) should\n use 0x4F54544F ('OTTO', when re-interpreted as a Tag) for sfntVersion.\n\n Fonts with the wrong sfntVersion value are rejected by FreeType.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/otff#table-directory\n ", "result": "PASS", "severity": 10}, {"description": "Space and non-breaking space have the same width?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Space and non-breaking space have the same width.", "status": "PASS", "traceback": null}], "rationale": "\n If the space and nbspace glyphs have different widths, then Google Workspace\n has problems with the font.\n\n The nbspace is used to replace the space character in multiple situations in\n documents; such as the space before punctuation in languages that do that. It\n avoids the punctuation to be separated from the last word and go to next line.\n\n This is automatic substitution by the text editors, not by fonts. It's also used\n by designers in text composition practice to create nicely shaped paragraphs.\n If the space and the nbspace are not the same width, it breaks the text\n composition of documents.\n ", "result": "PASS"}, {"description": "Detect any interpolation issues in the font.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n When creating a variable font, the designer must make sure that corresponding\n paths have the same start points across masters, as well as that corresponding\n component shapes are placed in the same order within a glyph across masters.\n If this is not done, the glyph will not interpolate correctly.\n\n Here we check for the presence of potential interpolation errors using the\n fontTools.varLib.interpolatable module.\n ", "result": "SKIP", "severity": 4}, {"description": "Check math signs have the same width.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The most common width is 538 among a set of 2 math glyphs.\nThe following math glyphs have a different width, though:\n\nWidth = 594:\nplus\n\nWidth = 563:\nequal\n\nWidth = 564:\nlogicalnot\n\nWidth = 576:\nplusminus\n\nWidth = 639:\nmultiply\n\nWidth = 517:\ndivide\n\nWidth = 642:\nminus\n\nWidth = 551:\nnotequal, approxequal\n\nWidth = 556:\ngreaterequal, lessequal\n [code: width-outliers]", "status": "WARN", "traceback": null}], "rationale": "\n It is a common practice to have math signs sharing the same width\n (preferably the same width as tabular figures accross the entire font family).\n\n This probably comes from the will to avoid additional tabular math signs\n knowing that their design can easily share the same width.\n ", "result": "WARN"}, {"description": "Checking Vertical Metric Linegaps.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 sTypoLineGap and hhea lineGap are both 0.", "status": "PASS", "traceback": null}], "rationale": "\n The LineGap value is a space added to the line height created by the union\n of the (typo/hhea)Ascender and (typo/hhea)Descender. It is handled differently\n according to the environment.\n\n This leading value will be added above the text line in most desktop apps.\n It will be shared above and under in web browsers, and ignored in Windows\n if Use_Typo_Metrics is disabled.\n\n For better linespacing consistency across platforms,\n (typo/hhea)LineGap values must be 0.\n ", "result": "PASS"}, {"description": "Checking STAT table entries in static fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n Adobe feature syntax allows for the definition of a STAT table. Fonts built\n with a hand-coded STAT table in feature syntax may be built either as static\n or variable, but will end up with the same STAT table.\n\n This is a problem, because a STAT table which works on variable fonts\n will not be appropriate for static instances. The examples in the OpenType spec\n of non-variable fonts with a STAT table show that the table entries must be\n restricted to those entries which refer to the static font's position in\n the designspace. i.e. a Regular weight static should only have the following\n entry for the weight axis:\n\n \n \n \n \n\n However, if the STAT table intended for a variable font is compiled into a\n static, it will have many entries for this axis. In this case, Windows will\n read the first entry only, causing all instances to report themselves\n as \"Thin Condensed\".\n ", "result": "SKIP"}, {"description": "Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Lcaron, dcaron, lcaron, tcaron should NOT be composed with quoteright\n or quotesingle or comma or caron(comb). It should be composed with a\n distinctive glyph which doesn't look like an apostrophe.\n\n Source:\n https://ilovetypography.com/2009/01/24/on-diacritics/\n http://diacritics.typo.cz/index.php?id=5\n https://www.typotheque.com/articles/lcaron\n ", "result": "PASS"}], "key": ["", null, null], "result": {"INFO": 2, "PASS": 25, "SKIP": 7, "WARN": 2}}, {"checks": [{"description": "Is the CFF subr/gsubr call depth > 10?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff", "status": "SKIP", "traceback": null}], "rationale": "\n Per \"The Type 2 Charstring Format, Technical Note #5177\",\n the \"Subr nesting, stack limit\" is 10.\n ", "result": "SKIP"}, {"description": "Is the CFF2 subr/gsubr call depth > 10?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff2", "status": "SKIP", "traceback": null}], "rationale": "\n Per \"The CFF2 CharString Format\", the \"Subr nesting, stack limit\" is 10.\n ", "result": "SKIP"}, {"description": "Does the font use deprecated CFF operators or operations?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff", "status": "SKIP", "traceback": null}], "rationale": "\n The 'dotsection' operator and the use of 'endchar' to build accented characters\n from the Adobe Standard Encoding Character Set (\"seac\") are deprecated in CFF.\n Adobe recommends repairing any fonts that use these, especially endchar-as-seac,\n because a rendering issue was discovered in Microsoft Word with a font that\n makes use of this operation. The check treats that usage as a FAIL.\n There are no known ill effects of using dotsection, so that check is a WARN.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"SKIP": 3}}, {"checks": [{"description": "Fonts have equal unicode encodings?", "key": ["", "", []], "logs": [{"message": "Fonts have equal unicode encodings.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Make sure all font files have the same version value.", "key": ["", "", []], "logs": [{"message": "All font files have the same version.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking unitsPerEm value is reasonable.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Filtered: Google Fonts has a stricter policy which is enforced by com.google.fonts/check/unitsperem_strict", "status": "SKIP", "traceback": null}], "rationale": "\n According to the OpenType spec:\n\n The value of unitsPerEm at the head table must be a value\n between 16 and 16384. Any value in this range is valid.\n\n In fonts that have TrueType outlines, a power of 2 is recommended\n as this allows performance optimizations in some rasterizers.\n\n But 1000 is a commonly used value. And 2000 may become\n increasingly more common on Variable Fonts.\n ", "result": "SKIP"}, {"description": "Checking font version fields (head and name table).", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All font version fields match.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking head.macStyle value.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "head macStyle ITALIC bit is properly set.", "status": "PASS", "traceback": null}, {"message": "head macStyle BOLD bit is properly set.", "status": "PASS", "traceback": null}], "rationale": "\n The values of the flags on the macStyle entry on the 'head' OpenType table\n that describe whether a font is bold and/or italic must be coherent with the\n actual style of the font as inferred by its filename.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3, "SKIP": 1}}, {"checks": [{"description": "Fonts have consistent PANOSE proportion?", "key": ["", "", []], "logs": [{"message": "Fonts have consistent PANOSE proportion.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Fonts have consistent PANOSE family type?", "key": ["", "", []], "logs": [{"message": "Fonts have consistent PANOSE family type.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check that OS/2.fsSelection bold & italic settings are unique for each NameID1", "key": ["", "", []], "logs": [{"message": "The OS/2.fsSelection bold & italic settings were unique within each compatible family group.", "status": "PASS", "traceback": null}], "rationale": "\n Per the OpenType spec: name ID 1 'is used in combination with Font Subfamily\n name (name ID 2), and should be shared among at most four fonts that differ\n only in weight or style.\n\n This four-way distinction should also be reflected in the OS/2.fsSelection\n field, using bits 0 and 5.\n ", "result": "PASS"}, {"description": "Check if OS/2 xAvgCharWidth is correct.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 xAvgCharWidth value is correct.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check if OS/2 fsSelection matches head macStyle bold and italic bits.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The OS/2.fsSelection and head.macStyle bold and italic settings match.", "status": "PASS", "traceback": null}], "rationale": "\n The bold and italic bits in OS/2.fsSelection must match the bold and italic\n bits in head.macStyle per the OpenType spec.\n ", "result": "PASS"}, {"description": "Check code page character ranges", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "At least one code page is defined.", "status": "PASS", "traceback": null}], "rationale": "\n At least some programs (such as Word and Sublime Text) under Windows 7\n do not recognize fonts unless code page bits are properly set on the\n ulCodePageRange1 (and/or ulCodePageRange2) fields of the OS/2 table.\n\n More specifically, the fonts are selectable in the font menu, but whichever\n Windows API these applications use considers them unsuitable for any\n character set, so anything set in these fonts is rendered with Arial as a\n fallback font.\n\n This check currently does not identify which code pages should be set.\n Auto-detecting coverage is not trivial since the OpenType specification\n leaves the interpretation of whether a given code page is \"functional\"\n or not open to the font developer to decide.\n\n So here we simply detect as a FAIL when a given font has no code page\n declared at all.\n ", "result": "PASS"}, {"description": "Checking OS/2 achVendID against configuration.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Add the `vendor_id` key to a `fontbakery.yaml` file on your font project directory to enable this check.\nYou'll also need to use the `--configuration` flag when invoking fontbakery.", "status": "SKIP", "traceback": null}], "rationale": "\n When a font project's Vendor ID is specified explicitly on FontBakery's\n configuration file, all binaries must have a matching vendor identifier\n value in the OS/2 table.\n ", "result": "SKIP"}, {"description": "Checking OS/2 fsSelection value.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 fsSelection REGULAR bit is properly set.", "status": "PASS", "traceback": null}, {"message": "OS/2 fsSelection ITALIC bit is properly set.", "status": "PASS", "traceback": null}, {"message": "OS/2 fsSelection BOLD bit is properly set.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 7, "SKIP": 1}}, {"checks": [{"description": "Fonts have consistent underline thickness?", "key": ["", "", []], "logs": [{"message": "Fonts have consistent underline thickness.", "status": "PASS", "traceback": null}], "rationale": "\n Dave C Lemon (Adobe Type Team) recommends setting the underline thickness to be\n consistent across the family.\n\n If thicknesses are not family consistent, words set on the same line which have\n different styles look strange.\n ", "result": "PASS"}, {"description": "Font has correct post table version?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has an acceptable post format 2.0 table version.", "status": "PASS", "traceback": null}], "rationale": "\n Format 2.5 of the 'post' table was deprecated in OpenType 1.3 and\n should not be used.\n\n According to Thomas Phinney, the possible problem with post format 3\n is that under the right combination of circumstances, one can generate\n PDF from a font with a post format 3 table, and not have accurate backing\n store for any text that has non-default glyphs for a given codepoint.\n\n It will look fine but not be searchable. This can affect Latin text with\n high-end typography, and some complex script writing systems, especially\n with higher-quality fonts. Those circumstances generally involve creating\n a PDF by first printing a PostScript stream to disk, and then creating a\n PDF from that stream without reference to the original source document.\n There are some workflows where this applies,but these are not common\n use cases.\n\n Apple recommends against use of post format version 4 as \"no longer\n necessary and should be avoided\". Please see the Apple TrueType reference\n documentation for additional details.\n\n https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6post.html\n\n Acceptable post format versions are 2 and 3 for TTF and OTF CFF2 builds,\n and post format 3 for CFF builds.\n ", "result": "PASS"}, {"description": "Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Value of post.italicAngle is 0.0 with style=\"Regular\".", "status": "PASS", "traceback": null}], "rationale": "\n The 'post' table italicAngle property should be a reasonable amount, likely\n not more than 30\u00b0. Note that in the OpenType specification, the value is\n negative for a rightward lean.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/post\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "Verify that each group of fonts with the same nameID 1 has maximum of 4 fonts.", "key": ["", "", []], "logs": [{"message": "There were no more than 4 fonts per family name.", "status": "PASS", "traceback": null}], "rationale": "\n Per the OpenType spec:\n\n 'The Font Family name [...] should be shared among at most four fonts that\n differ only in weight or style [...]'\n ", "result": "PASS"}, {"description": "Verify that family names in the name table are consistent across all fonts in the family. Checks Typographic Family name (nameID 16) if present, otherwise uses Font Family name (nameID 1)", "key": ["", "", []], "logs": [{"message": "Font family names are consistent across the family.", "status": "PASS", "traceback": null}], "rationale": "\n Per the OpenType spec:\n * \"...many existing applications that use this pair of names assume that a\n Font Family name is shared by at most four fonts that form a font\n style-linking group\"\n * \"For extended typographic families that includes fonts other than the\n four basic styles(regular, italic, bold, bold italic), it is strongly\n recommended that name IDs 16 and 17 be used in fonts to create an\n extended, typographic grouping.\"\n * \"If name ID 16 is absent, then name ID 1 is considered to be the\n typographic family name.\"\n\n https://learn.microsoft.com/en-us/typography/opentype/spec/name\n\n Fonts within a font family all must have consistent names\n in the Typographic Family name (nameID 16)\n or Font Family name (nameID 1), depending on which it uses.\n\n Inconsistent font/typographic family names across fonts in a family\n can result in unexpected behaviors, such as broken style linking.\n ", "result": "PASS"}, {"description": "Check name table for empty records.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No empty name table records found.", "status": "PASS", "traceback": null}], "rationale": "\n Check the name table for empty records,\n as this can cause problems in Adobe apps.\n ", "result": "PASS"}, {"description": "Description strings in the name table must not contain copyright info.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Description strings in the name table do not contain any copyright string.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking correctness of monospaced metadata.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font is not monospaced and all related metadata look good. [code: good]", "status": "PASS", "traceback": null}], "rationale": "\n There are various metadata in the OpenType spec to specify if a font is\n monospaced or not. If the font is not truly monospaced, then no monospaced\n metadata should be set (as sometimes they mistakenly are...)\n\n Requirements for monospace fonts:\n\n * post.isFixedPitch - \"Set to 0 if the font is proportionally spaced,\n non-zero if the font is not proportionally spaced (monospaced)\"\n (https://www.microsoft.com/typography/otspec/post.htm)\n\n * hhea.advanceWidthMax must be correct, meaning no glyph's width value\n is greater. (https://www.microsoft.com/typography/otspec/hhea.htm)\n\n * OS/2.panose.bProportion must be set to 9 (monospace) on latin text fonts.\n\n * OS/2.panose.bSpacing must be set to 3 (monospace) on latin hand written\n or latin symbol fonts.\n\n * Spec says: \"The PANOSE definition contains ten digits each of which currently\n describes up to sixteen variations. Windows uses bFamilyType, bSerifStyle\n and bProportion in the font mapper to determine family type. It also uses\n bProportion to determine if the font is monospaced.\"\n (https://www.microsoft.com/typography/otspec/os2.htm#pan\n https://monotypecom-test.monotype.de/services/pan2)\n\n * OS/2.xAvgCharWidth must be set accurately.\n \"OS/2.xAvgCharWidth is used when rendering monospaced fonts,\n at least by Windows GDI\"\n (http://typedrawers.com/discussion/comment/15397/#Comment_15397)\n\n Also we should report an error for glyphs not of average width.\n\n\n Please also note:\n\n Thomas Phinney told us that a few years ago (as of December 2019), if you gave\n a font a monospace flag in Panose, Microsoft Word would ignore the actual\n advance widths and treat it as monospaced.\n\n Source: https://typedrawers.com/discussion/comment/45140/#Comment_45140\n ", "result": "PASS"}, {"description": "Does full font name begin with the font family name?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Full font name begins with the font family name.", "status": "PASS", "traceback": null}], "rationale": "\n The FULL_FONT_NAME entry in the \u2018name\u2019 table should start with the same string\n as the Family Name (FONT_FAMILY_NAME, TYPOGRAPHIC_FAMILY_NAME or\n WWS_FAMILY_NAME).\n\n If the Family Name is not included as the first part of the Full Font Name, and\n the user embeds the font in a document using a Microsoft Office app, the app\n will fail to render the font when it opens the document again.\n\n NOTE: Up until version 1.5, the OpenType spec included the following exception\n in the definition of Full Font Name:\n\n \"An exception to the [above] definition of Full font name is for Microsoft\n platform strings for CFF OpenType fonts: in this case, the Full font name\n string must be identical to the PostScript FontName in the CFF Name INDEX.\"\n\n https://docs.microsoft.com/en-us/typography/opentype/otspec150/name#name-ids\n ", "result": "PASS"}, {"description": "PostScript name follows OpenType specification requirements?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "PostScript name follows requirements. [code: psname-ok]", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font follows the family naming recommendations?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font follows the family naming recommendations.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "CFF table FontName must match name table ID 6 (PostScript name).", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff", "status": "SKIP", "traceback": null}], "rationale": "\n The PostScript name entries in the font's 'name' table should match\n the FontName string in the 'CFF ' table.\n\n The 'CFF ' table has a lot of information that is duplicated in other tables.\n This information should be consistent across tables, because there's\n no guarantee which table an app will get the data from.\n ", "result": "SKIP"}, {"description": "Name table ID 6 (PostScript name) must be consistent across platforms.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Entries in the \"name\" table for ID 6 (PostScript name) are consistent.", "status": "PASS", "traceback": null}], "rationale": "\n The PostScript name entries in the font's 'name' table should be\n consistent across platforms.\n\n This is the TTF/CFF2 equivalent of the CFF 'name/postscript_vs_cff' check.\n ", "result": "PASS"}, {"description": "Check name table IDs 1, 2, 16, 17 to conform to Italic style.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font is not Italic.", "status": "SKIP", "traceback": null}], "rationale": "\n This check ensures that several entries in the name table\n conform to the font's Upright or Italic style,\n namely IDs 1 & 2 as well as 16 & 17 if they're present.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"PASS": 9, "SKIP": 2}}, {"checks": [{"description": "Does the number of glyphs in the loca table match the maxp table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "'loca' table matches numGlyphs in 'maxp' table.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check hhea.caretSlopeRise and hhea.caretSlopeRun", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "hhea.caretSlopeRise and hhea.caretSlopeRun match with post.italicAngle.", "status": "PASS", "traceback": null}], "rationale": "\n Checks whether hhea.caretSlopeRise and hhea.caretSlopeRun\n match with post.italicAngle.\n\n For Upright fonts, you can set hhea.caretSlopeRise to 1\n and hhea.caretSlopeRun to 0.\n\n For Italic fonts, you can set hhea.caretSlopeRise to head.unitsPerEm\n and calculate hhea.caretSlopeRun like this:\n round(math.tan(\n math.radians(-1 * font[\"post\"].italicAngle)) * font[\"head\"].unitsPerEm)\n\n This check allows for a 0.1\u00b0 rounding difference between the Italic angle\n as calculated by the caret slope and post.italicAngle\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 2}}, {"checks": [{"description": "Does the font have a DSIG table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "ok", "status": "PASS", "traceback": null}], "rationale": "\n Microsoft Office 2013 and below products expect fonts to have a digital\n signature declared in a DSIG table in order to implement OpenType features.\n The EOL date for Microsoft Office 2013 products is 4/11/2023.\n This issue does not impact Microsoft Office 2016 and above products.\n\n As we approach the EOL date, it is now considered better to\n completely remove the table.\n\n But if you still want your font to support OpenType features on Office 2013,\n then you may find it handy to add a fake signature on a placeholder DSIG table\n by running one of the helper scripts provided at\n https://github.com/googlefonts/gftools\n\n Reference: https://github.com/fonttools/fontbakery/issues/1845\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Check glyphs in mark glyph class are non-spacing.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not has spacing glyphs in the GDEF mark glyph class.", "status": "PASS", "traceback": null}], "rationale": "\n Glyphs in the GDEF mark glyph class should be non-spacing.\n\n Spacing glyphs in the GDEF mark glyph class may have incorrect anchor\n positioning that was only intended for building composite glyphs during design.\n ", "result": "PASS"}, {"description": "Check mark characters are in GDEF mark glyph class.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not have mark characters not in the GDEF mark glyph class.", "status": "PASS", "traceback": null}], "rationale": "\n Mark characters should be in the GDEF mark glyph class.\n ", "result": "PASS"}, {"description": "Check GDEF mark glyph class doesn't have characters that are not marks.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not have non-mark characters in the GDEF mark glyph class.", "status": "PASS", "traceback": null}], "rationale": "\n Glyphs in the GDEF mark glyph class become non-spacing and may be repositioned\n if they have mark anchors.\n\n Only combining mark glyphs should be in that class. Any non-mark glyph\n must not be in that class, in particular spacing glyphs.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "Does GPOS table have kerning information? This check skips monospaced fonts as defined by post.isFixedPitch value", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "GPOS table check for kerning information passed.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Is there a usable \"kern\" table declared in the font?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not declare an optional \"kern\" table.", "status": "PASS", "traceback": null}], "rationale": "\n Even though all fonts should have their kerning implemented in the GPOS table,\n there may be kerning info at the kern table as well.\n\n Some applications such as MS PowerPoint require kerning info on the kern table.\n More specifically, they require a format 0 kern subtable from a kern table\n version 0 with only glyphs defined in the cmap table, which is the only one\n that Windows understands (and which is also the simplest and more limited\n of all the kern subtables).\n\n Google Fonts ingests fonts made for download and use on desktops, and does\n all web font optimizations in the serving pipeline (using libre libraries\n that anyone can replicate.)\n\n Ideally, TTFs intended for desktop users (and thus the ones intended for\n Google Fonts) should have both KERN and GPOS tables.\n\n Given all of the above, we currently treat kerning on a v0 kern table\n as a good-to-have (but optional) feature.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Is there any unused data at the end of the glyf table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There is no unused data at the end of the glyf table.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check for points out of bounds.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All glyph paths have coordinates within bounds!", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check glyphs do not have duplicate components which have the same x,y coordinates.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyphs do not contain duplicate components which have the same x,y coordinates.", "status": "PASS", "traceback": null}], "rationale": "\n There have been cases in which fonts had faulty double quote marks, with each\n of them containing two single quote marks as components with the same\n x, y coordinates which makes them visually look like single quote marks.\n\n This check ensures that glyphs do not contain duplicate components\n which have the same x,y coordinates.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "The variable font 'wght' (Weight) axis coordinate must be 400 on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wght_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wght' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght\n\n If a variable font has a 'wght' (Weight) axis, then the coordinate of\n its 'Regular' instance is required to be 400.\n ", "result": "SKIP"}, {"description": "The variable font 'wdth' (Width) axis coordinate must be 100 on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wdth_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wdth' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wdth\n\n If a variable font has a 'wdth' (Width) axis, then the coordinate of\n its 'Regular' instance is required to be 100.\n ", "result": "SKIP"}, {"description": "The variable font 'slnt' (Slant) axis coordinate must be zero on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_slnt_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'slnt' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_slnt\n\n If a variable font has a 'slnt' (Slant) axis, then the coordinate of\n its 'Regular' instance is required to be zero.\n ", "result": "SKIP"}, {"description": "The variable font 'ital' (Italic) axis coordinate must be zero on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_ital_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'ital' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_ital\n\n If a variable font has a 'ital' (Italic) axis, then the coordinate of\n its 'Regular' instance is required to be zero.\n ", "result": "SKIP"}, {"description": "The variable font 'opsz' (Optical Size) axis coordinate should be between 10 and 16 on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_opsz_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'opsz' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_opsz\n\n If a variable font has an 'opsz' (Optical Size) axis, then\n the coordinate of its 'Regular' instance is recommended to be\n a value in the range 10 to 16.\n ", "result": "SKIP"}, {"description": "The variable font 'wght' (Weight) axis coordinate must be 700 on the 'Bold' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wght_axis", "status": "SKIP", "traceback": null}], "rationale": "\n The Open-Type spec's registered\n design-variation tag 'wght' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght\n does not specify a required value for the 'Bold' instance of a variable font.\n\n But Dave Crossland suggested that we should enforce\n a required value of 700 in this case (NOTE: a distinction\n is made between \"no bold instance present\" vs \"bold instance is present\n but its wght coordinate is not == 700\").\n ", "result": "SKIP"}, {"description": "The variable font 'wght' (Weight) axis coordinate must be within spec range of 1 to 1000 on all instances.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wght_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wght' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght\n\n On the 'wght' (Weight) axis, the valid coordinate range is 1-1000.\n ", "result": "SKIP"}, {"description": "The variable font 'wdth' (Width) axis coordinate must strictly greater than zero.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wdth_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wdth' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wdth\n\n On the 'wdth' (Width) axis, the valid numeric range is strictly greater than\n zero.\n ", "result": "SKIP"}, {"description": "The variable font 'slnt' (Slant) axis coordinate specifies positive values in its range?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_slnt_axis", "status": "SKIP", "traceback": null}], "rationale": "\n The OpenType spec says at\n https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_slnt that:\n\n [...] the scale for the Slant axis is interpreted as the angle of slant\n in counter-clockwise degrees from upright. This means that a typical,\n right-leaning oblique design will have a negative slant value. This matches\n the scale used for the italicAngle field in the post table.\n ", "result": "SKIP"}, {"description": "Validates that the value of axisNameID used by each VariationAxisRecord is greater than 255 and less than 32768.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The axisNameID field provides a name ID that can be used to obtain strings\n from the 'name' table that can be used to refer to the axis in application\n user interfaces. The name ID must be greater than 255 and less than 32768.\n ", "result": "SKIP"}, {"description": "Validates that the value of subfamilyNameID used by each InstanceRecord is 2, 17, or greater than 255 and less than 32768.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The subfamilyNameID field provides a name ID that can be used to obtain\n strings from the 'name' table that can be treated as equivalent to name\n ID 17 (typographic subfamily) strings for the given instance. Values of\n 2 or 17 can be used; otherwise, values must be greater than 255 and less\n than 32768.\n ", "result": "SKIP"}, {"description": "Validates that the value of postScriptNameID used by each InstanceRecord is 6, 0xFFFF, or greater than 255 and less than 32768.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The postScriptNameID field provides a name ID that can be used to obtain\n strings from the 'name' table that can be treated as equivalent to name\n ID 6 (PostScript name) strings for the given instance. Values of 6 and\n 0xFFFF can be used; otherwise, values must be greater than 255 and less\n than 32768.\n ", "result": "SKIP"}, {"description": "Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9.1\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The default instance of a font is that instance for which the coordinate\n value of each axis is the defaultValue specified in the corresponding\n variation axis record. An instance record is not required for the default\n instance, though an instance record can be provided. When enumerating named\n instances, the default instance should be enumerated even if there is no\n corresponding instance record. If an instance record is included for the\n default instance (that is, an instance record has coordinates set to default\n values), then the nameID value should be set to either 2 or 17 or to a\n name ID with the same value as name ID 2 or 17. Also, if a postScriptNameID is\n included in instance records, and the postScriptNameID value should be set\n to 6 or to a name ID with the same value as name ID 6.\n ", "result": "SKIP"}, {"description": "Validates that all of the instance records in a given font have the same size.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n All of the instance records in a given font must be the same size, with\n all either including or omitting the postScriptNameID field. [...]\n If the value is 0xFFFF, then the value is ignored, and no PostScript name\n equivalent is provided for the instance.\n ", "result": "SKIP"}, {"description": "Validates that all of the instance records in a given font have distinct data.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n All of the instance records in a font should have distinct coordinates\n and distinct subfamilyNameID and postScriptName ID values. If two or more\n records share the same coordinates, the same nameID values or the same\n postScriptNameID values, then all but the first can be ignored.\n ", "result": "SKIP"}, {"description": "Validate foundry-defined design-variation axis tag names.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's syntactic requirements for\n foundry-defined design-variation axis tags available at\n https://learn.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg\n\n Foundry-defined tags must begin with an uppercase letter\n and must use only uppercase letters or digits.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"SKIP": 16}}, {"checks": [{"description": "Ensure VFs have 'ital' STAT axis.", "key": ["", "", []], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Check that related Upright and Italic VFs have a\n 'ital' axis in STAT table.\n ", "result": "PASS"}, {"description": "All fvar axes have a correspondent Axis Record on STAT table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the OpenType spec, there must be an Axis Record\n for every axis defined in the fvar table.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/stat#axis-records\n ", "result": "SKIP"}, {"description": "STAT table has Axis Value tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n According to the OpenType spec, in a variable font, it is strongly recommended\n that axis value tables be included for every element of typographic subfamily\n names for all of the named instances defined in the 'fvar' table.\n\n Axis value tables are particularly important for variable fonts, but can also\n be used in non-variable fonts. When used in non-variable fonts, axis value\n tables for particular values should be implemented consistently across fonts\n in the family.\n\n If present, Format 4 Axis Value tables are checked to ensure they have more than\n one AxisValueRecord (a strong recommendation from the OpenType spec).\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/stat#axis-value-tables\n ", "result": "SKIP"}, {"description": "Ensure 'ital' STAT axis is boolean value (derived from com.google.fonts/check/italic_axis_in_stat_is_boolean)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n Check that the value of the 'ital' STAT axis is boolean (either 0 or 1),\n and elided for the Upright and not elided for the Italic,\n and that the Upright is linked to the Italic.\n ", "result": "SKIP"}, {"description": "Ensure 'ital' STAT axis is last. (derived from com.google.fonts/check/italic_axis_last)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n Check that the 'ital' STAT axis is last in axis order.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"PASS": 1, "SKIP": 4}}, {"checks": [{"description": "Does the font have any invalid feature tags?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No invalid feature tags were found", "status": "PASS", "traceback": null}], "rationale": "\n Incorrect tags can be indications of typos, leftover debugging code or\n questionable approaches, or user error in the font editor. Such typos can\n cause features and language support to fail to work as intended.\n ", "result": "PASS", "severity": 8}, {"description": "Does the font have any invalid script tags?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No invalid script tags were found", "status": "PASS", "traceback": null}], "rationale": "\n Incorrect script tags can be indications of typos, leftover debugging code\n or questionable approaches, or user error in the font editor. Such typos can\n cause features and language support to fail to work as intended.\n ", "result": "PASS", "severity": 8}, {"description": "Does the font have any invalid language tags?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No invalid language tags were found", "status": "PASS", "traceback": null}], "rationale": "\n Incorrect language tags can be indications of typos, leftover debugging code\n or questionable approaches, or user error in the font editor. Such typos can\n cause features and language support to fail to work as intended.\n ", "result": "PASS", "severity": 8}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "Check that texts shape as per expectation", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Shaping test directory not defined in configuration file", "status": "SKIP", "traceback": null}], "rationale": "\n Fonts with complex layout rules can benefit from regression tests to ensure\n that the rules are behaving as designed. This checks runs a shaping test\n suite and compares expected shaping against actual shaping, reporting\n any differences.\n\n Shaping test suites should be written by the font engineer and referenced\n in the FontBakery configuration file. For more information about write\n shaping test files and how to configure FontBakery to read the shaping\n test suites, see https://simoncozens.github.io/tdd-for-otl/\n ", "result": "SKIP"}, {"description": "Check that no forbidden glyphs are found while shaping", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Shaping test directory not defined in configuration file", "status": "SKIP", "traceback": null}], "rationale": "\n Fonts with complex layout rules can benefit from regression tests to ensure\n that the rules are behaving as designed. This checks runs a shaping test\n suite and reports if any glyphs are generated in the shaping which should\n not be produced. (For example, .notdef glyphs, visible viramas, etc.)\n\n Shaping test suites should be written by the font engineer and referenced in\n the FontBakery configuration file. For more information about write shaping\n test files and how to configure FontBakery to read the shaping test suites,\n see https://simoncozens.github.io/tdd-for-otl/\n ", "result": "SKIP"}, {"description": "Check that no collisions are found while shaping", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Shaping test directory not defined in configuration file", "status": "SKIP", "traceback": null}], "rationale": "\n Fonts with complex layout rules can benefit from regression tests to ensure\n that the rules are behaving as designed. This checks runs a shaping test\n suite and reports instances where the glyphs collide in unexpected ways.\n\n Shaping test suites should be written by the font engineer and referenced\n in the FontBakery configuration file. For more information about write\n shaping test files and how to configure FontBakery to read the shaping\n test suites, see https://simoncozens.github.io/tdd-for-otl/\n ", "result": "SKIP"}, {"description": "Ensure dotted circle glyph is present and can attach marks.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No dotted circle glyph present [code: missing-dotted-circle]", "status": "WARN", "traceback": null}], "rationale": "\n The dotted circle character (U+25CC) is inserted by shaping engines before\n mark glyphs which do not have an associated base, especially in the context\n of broken syllabic clusters.\n\n For fonts containing combining marks, it is recommended that the dotted circle\n character be included so that these isolated marks can be displayed properly;\n for fonts supporting complex scripts, this should be considered mandatory.\n\n Additionally, when a dotted circle glyph is present, it should be able to\n display all marks correctly, meaning that it should contain anchors for all\n attaching marks.\n ", "result": "WARN", "severity": 3}, {"description": "Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikdoodletriangles/RubikDoodleTriangles-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The dot of soft dotted characters used in orthographies _must_ disappear in the following strings: \u012f\u0300 \u012f\u0301 \u012f\u0302 \u012f\u0303 \u012f\u0304 \u012f\u030c \u0456\u0301\n\nThe dot of soft dotted characters _should_ disappear in other cases, for example: i\u0326\u0312 j\u0326\u0312 \u012f\u0306 \u012f\u0307 \u012f\u0308 \u012f\u030a \u012f\u030b \u012f\u0312 \u012f\u0326\u0312 \u012f\u0327\u0312 \u012f\u0328\u0312 \u012f\u0335\u0300 \u012f\u0335\u0301 \u012f\u0335\u0302 \u012f\u0335\u0303 \u012f\u0335\u0304 \u012f\u0335\u0306 \u012f\u0335\u0307 \u012f\u0335\u0308 \u012f\u0335\u030a\n\nYour font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Belarusian (Cyrl, 10,064,517 speakers), Dutch (Latn, 31,709,104 speakers). \n\nYour font does *not* cover the following languages that require the soft-dotted feature: Avokaya (Latn, 100,000 speakers), Gulay (Latn, 250,478 speakers), Navajo (Latn, 166,319 speakers), Igbo (Latn, 27,823,640 speakers), Basaa (Latn, 332,940 speakers), Ejagham (Latn, 120,000 speakers), Ebira (Latn, 2,200,000 speakers), Koonzime (Latn, 40,000 speakers), Mango (Latn, 77,000 speakers), Nateni (Latn, 100,000 speakers), Lugbara (Latn, 2,200,000 speakers), Ma\u2019di (Latn, 584,000 speakers), Kom (Latn, 360,685 speakers), Sar (Latn, 500,000 speakers), Dan (Latn, 1,099,244 speakers), Aghem (Latn, 38,843 speakers). [code: soft-dotted]", "status": "WARN", "traceback": null}], "rationale": "\n An accent placed on characters with a \"soft dot\", like i or j, causes\n the dot to disappear.\n An explicit dot above can be added where required.\n See \"Diacritics on i and j\" in Section 7.1, \"Latin\" in The Unicode Standard.\n\n Characters with the Soft_Dotted property are listed in\n https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n\n See also:\n https://googlefonts.github.io/gf-guide/diacritics.html#soft-dotted-glyphs\n ", "result": "WARN", "severity": 3}], "key": ["", null, null], "result": {"SKIP": 3, "WARN": 2}}], "fontbakery_version": "0.10.4"} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikdoodletriangles/GoogleFonts.json b/docs/fontbakery-reports/rubikdoodletriangles/GoogleFonts.json new file mode 100644 index 0000000..40c97e6 --- /dev/null +++ b/docs/fontbakery-reports/rubikdoodletriangles/GoogleFonts.json @@ -0,0 +1,7 @@ +{ + "color": "green", + "label": "Google Fonts", + "logoSvg": "", + "message": "85%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikdoodletriangles/ShapingChecks.json b/docs/fontbakery-reports/rubikdoodletriangles/ShapingChecks.json new file mode 100644 index 0000000..1e5a389 --- /dev/null +++ b/docs/fontbakery-reports/rubikdoodletriangles/ShapingChecks.json @@ -0,0 +1,7 @@ +{ + "color": "red", + "label": "Shaping Checks", + "logoSvg": "", + "message": "0%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikdoodletriangles/Universal.json b/docs/fontbakery-reports/rubikdoodletriangles/Universal.json new file mode 100644 index 0000000..d84470f --- /dev/null +++ b/docs/fontbakery-reports/rubikdoodletriangles/Universal.json @@ -0,0 +1,7 @@ +{ + "color": "green", + "label": "Universal", + "logoSvg": "", + "message": "87%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikdoodletriangles/overall.json b/docs/fontbakery-reports/rubikdoodletriangles/overall.json new file mode 100644 index 0000000..f9c5a8e --- /dev/null +++ b/docs/fontbakery-reports/rubikdoodletriangles/overall.json @@ -0,0 +1,7 @@ +{ + "color": "green", + "label": "FontBakery QA", + "logoSvg": "", + "message": "88%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubiklines-report.html b/docs/fontbakery-reports/rubiklines-report.html new file mode 100644 index 0000000..33c7bcf --- /dev/null +++ b/docs/fontbakery-reports/rubiklines-report.html @@ -0,0 +1,2764 @@ + + + + + FontBakery Check Report + + + +
+ +
+ Fontbakery Technical Report +
+
+ +
+

If you think a check is flawed or have an idea for a check, please file an issue at https://github.com/fonttools/fontbakery/issues and remember to include a pointer to the repo and branch you're checking.

+

Summary

+ + + + + + + + + + + + + + + + + + + + + + + + + +
💥 ERROR🔥 FAIL⚠️ WARN⏩ SKIPℹ️ INFO✅ PASS
0412649158
0%2%7%35%5%87%
+ +

Note: The following loglevels were omitted in this report: SKIP, INFO, PASS, DEBUG

+ +

Meaning of check results:

+ +
    +
  • 💥 An ERROR is something wrong with FontBakery itself, possibly a bug. +
  • 🔥 A FAIL is a problem with the font that must be fixed. +
  • ⚠️ A WARN is something that you should consider addressing. +
  • ℹ️ An INFO result simply prints something useful. Typically stats. +
  • ✅ A PASS means the font looks good for the given checking routine. +
  • ⏩ And a SKIP happens when the check does not apply to the given font. +
+ +

If you get ERRORs, please help us improve the tool by reporting them at our + issue tracker.

+ +

(but other kinds of bug reports and/or feature requests + are also always welcome, of course!)

+ +

FontBakery version: 0.10.4

+ +

Section: Google Fonts

+🔥🔥🔥🔥⚠️⚠️⚠️⚠️⚠️⚠️⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩ℹ️ℹ️ℹ️ℹ️ℹ️ℹ️ℹ️ +

Checking OS/2 achVendID.

+
Check ID: com.google.fonts/check/vendor_id
+ +
⚠️ RubikLines-Regular.ttf
  • ⚠️ WARN

    OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx +[code: unknown]

    +
+

Check for codepoints not covered by METADATA subsets.

+
Check ID: com.google.fonts/check/metadata/unreachable_subsetting
+ +
⚠️ RubikLines-Regular.ttf
  • ⚠️ WARN

    The following codepoints supported by the font are not covered by +any subsets defined in the font's metadata file, and will never +be served. You can solve this by either manually adding additional +subset declarations to METADATA.pb, or by editing the glyphset +definitions.

    +
      +
    • U+02C7 CARON: try adding one of: yi, canadian-aboriginal, tifinagh
    • +
    • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
    • +
    • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
    • +
    • U+02DB OGONEK: try adding one of: yi, canadian-aboriginal
    • +
    • U+02DD DOUBLE ACUTE ACCENT: not included in any glyphset definition
    • +
    • U+0306 COMBINING BREVE: try adding one of: old-permic, tifinagh
    • +
    • U+030A COMBINING RING ABOVE: try adding syriac
    • +
    • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage
    • +
    • U+030C COMBINING CARON: try adding one of: tai-le, cherokee
    • +
    • U+0312 COMBINING TURNED COMMA ABOVE: not included in any glyphset definition
    • +
    • U+0326 COMBINING COMMA BELOW: not included in any glyphset definition
    • +
    • U+0327 COMBINING CEDILLA: not included in any glyphset definition
    • +
    • U+0328 COMBINING OGONEK: not included in any glyphset definition
    • +
    • U+0335 COMBINING SHORT STROKE OVERLAY: not included in any glyphset definition
    • +
    • U+0337 COMBINING SHORT SOLIDUS OVERLAY: not included in any glyphset definition
    • +
    • U+0338 COMBINING LONG SOLIDUS OVERLAY: not included in any glyphset definition
    • +
    • U+2021 DOUBLE DAGGER: try adding adlam
    • +
    • U+2030 PER MILLE SIGN: try adding adlam
    • +
    • U+2070 SUPERSCRIPT ZERO: not included in any glyphset definition
    • +
    • U+2075 SUPERSCRIPT FIVE: not included in any glyphset definition
    • +
    • U+2076 SUPERSCRIPT SIX: not included in any glyphset definition
    • +
    • U+2077 SUPERSCRIPT SEVEN: not included in any glyphset definition
    • +
    • U+2078 SUPERSCRIPT EIGHT: not included in any glyphset definition
    • +
    • U+2079 SUPERSCRIPT NINE: not included in any glyphset definition
    • +
    • U+207D SUPERSCRIPT LEFT PARENTHESIS: not included in any glyphset definition
    • +
    • U+207E SUPERSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition
    • +
    • U+2080 SUBSCRIPT ZERO: not included in any glyphset definition
    • +
    • U+2081 SUBSCRIPT ONE: not included in any glyphset definition
    • +
    • U+2082 SUBSCRIPT TWO: not included in any glyphset definition
    • +
    • U+2083 SUBSCRIPT THREE: not included in any glyphset definition
    • +
    • U+2084 SUBSCRIPT FOUR: not included in any glyphset definition
    • +
    • U+2085 SUBSCRIPT FIVE: not included in any glyphset definition
    • +
    • U+2086 SUBSCRIPT SIX: not included in any glyphset definition
    • +
    • U+2087 SUBSCRIPT SEVEN: not included in any glyphset definition
    • +
    • U+2088 SUBSCRIPT EIGHT: not included in any glyphset definition
    • +
    • U+2089 SUBSCRIPT NINE: not included in any glyphset definition
    • +
    • U+208D SUBSCRIPT LEFT PARENTHESIS: not included in any glyphset definition
    • +
    • U+208E SUBSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition
    • +
    • U+212E ESTIMATED SYMBOL: not included in any glyphset definition
    • +
    • U+2153 VULGAR FRACTION ONE THIRD: not included in any glyphset definition
    • +
    • U+2154 VULGAR FRACTION TWO THIRDS: not included in any glyphset definition
    • +
    • U+215B VULGAR FRACTION ONE EIGHTH: not included in any glyphset definition
    • +
    • U+215C VULGAR FRACTION THREE EIGHTHS: not included in any glyphset definition
    • +
    • U+215D VULGAR FRACTION FIVE EIGHTHS: not included in any glyphset definition
    • +
    • U+215E VULGAR FRACTION SEVEN EIGHTHS: not included in any glyphset definition
    • +
    • U+FB01 LATIN SMALL LIGATURE FI: not included in any glyphset definition
    • +
    • U+FB02 LATIN SMALL LIGATURE FL: not included in any glyphset definition
    • +
    +

    Or you can add the above codepoints to one of the subsets supported by the font: cyrillic, cyrillic-ext, hebrew, latin, latin-ext, math, menu, symbols [code: unreachable-subsetting]

    +
+

Ensure files are not too large.

+
Check ID: com.google.fonts/check/file_size
+ +
⚠️ RubikLines-Regular.ttf
  • ⚠️ WARN

    Font file is 1.2Mb; ideally it should be less than 1.0Mb [code: large-font]

    +
+

METADATA.pb: Check URL on copyright string is the same as in repository_url field.

+
Check ID: com.google.fonts/check/metadata/consistent_repo_urls
+ +
🔥 RubikLines-Regular.ttf
  • 🔥 FAIL

    Repository URL is https://github.com/NaN-xyz/Rubik-Filtered

    +

    But: OFL text has 'https:/' and HTML description has 'github.com/NaN-xyz/Glyph-Filters' +[code: mismatch]

    +
+

EXPERIMENTAL CHECK - Since 2023/Nov/02
Shapes languages in all GF glyphsets.

+
Check ID: com.google.fonts/check/glyphsets/shape_languages
+ +
🔥 RubikLines-Regular.ttf
  • 🔥 FAIL

    GF_Latin_Core glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| haw_Latn (Hawaiian) | Some base glyphs were missing: ʻ | +| ^ | Shaper produced a .notdef | +| mh_Latn (Marshallese) | Some base glyphs were missing: Ḷ, ḷ, Ṃ, ṃ, Ṇ, ṇ, Ọ, ọ | +| ^ | Some mark glyphs were missing: ◌̣ | +| ^ | Shaper produced a .notdef | +| scn_Latn (Sicilian) | Some base glyphs were missing: Ḍ, ḍ | +| ^ | Shaper produced a .notdef | +| teo_Latn (Teso) | Some base glyphs were missing: Ɔ, Ɛ, Ɨ, Ʉ, ɔ, ɛ, ɨ, ʉ, ᵃ, ᵉ, ᵋ, ᵒ, ᵓ, ᵘ, ᶤ, ᶶ, ⁱ | +| ^ | Shaper produced a .notdef |

    +

    [code: failed-language-shaping]

    +
  • 🔥 FAIL

    GF_Cyrillic_Plus glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| tg_Cyrl (Tajik) | Some base glyphs were missing: ҳ | +| ^ | Shaper produced a .notdef | +| uz_Cyrl (Uzbek (Cyrillic)) | Some base glyphs were missing: ҳ | +| ^ | Shaper produced a .notdef |

    +

    [code: failed-language-shaping]

    +
  • ⚠️ WARN

    GF_Latin_Core glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| lg_Latn (Ganda) | No variant glyphs were found for Eng | +| dyo_Latn (Jola-Fonyi) | No variant glyphs were found for Eng | +| ny_Latn (Nyanja) | No variant glyphs were found for Eng | +| wo_Latn (Wolof) | No variant glyphs were found for Eng |

    +

    [code: warning-language-shaping]

    +
  • ⚠️ WARN

    GF_Cyrillic_Plus glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| ku_Cyrl (Kurdish) | No exemplar glyphs were defined for language Kurdish |

    +

    [code: warning-language-shaping]

    +
+

Is there kerning info for non-ligated sequences?

+
Check ID: com.google.fonts/check/kerning_for_non_ligated_sequences
+ +
⚠️ RubikLines-Regular.ttf
  • ⚠️ WARN

    GPOS table lacks kerning info for the following non-ligated sequences:

    +
    - f + f
    +
    +- f + i
    +
    +- i + f
    +
    +- f + l
    +
    +- l + f
    +
    +- i + l [code: lacks-kern-info]
    +
    +
+

Check font follows the Google Fonts vertical metric schema

+
Check ID: com.google.fonts/check/vertical_metrics
+ +
🔥 RubikLines-Regular.ttf
  • 🔥 FAIL

    The sum of hhea.ascender + abs(hhea.descender) + hhea.lineGap is 1185 when it should be at least 1200 [code: bad-hhea-range]

    +
+

METADATA.pb: Designers are listed correctly on the Google Fonts catalog?

+
Check ID: com.google.fonts/check/metadata/designer_profiles
+ +
🔥 RubikLines-Regular.ttf
  • 🔥 FAIL

    Designer Luke Prowse still does not have an avatar image. Please provide one. [code: missing-avatar]

    +
+

On a family update, the DESCRIPTION.en_us.html file should ideally also be updated.

+
Check ID: com.google.fonts/check/description/family_update
+ +
⚠️ RubikLines-Regular.ttf
  • ⚠️ WARN

    The DESCRIPTION.en_us.html file in this family has not changed in comparison to the latest font release on the google/fonts github repo. +Please consider mentioning note-worthy improvements made to the family recently. [code: description-not-updated]

    +
+

Ensure fonts have ScriptLangTags declared on the 'meta' table.

+
Check ID: com.google.fonts/check/meta/script_lang_tags
+ +
⚠️ RubikLines-Regular.ttf
  • ⚠️ WARN

    This font file does not have a 'meta' table. [code: lacks-meta-table]

    +
+

Section: Universal

+⚠️⚠️⚠️⚠️⏩⏩⏩⏩⏩⏩⏩ℹ️ℹ️ +

Check font contains no unreachable glyphs

+
Check ID: com.google.fonts/check/unreachable_glyphs
+ +
⚠️ RubikLines-Regular.ttf
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

    +
    - LineHorizontalComponent
    +
    +- LineVerticalComponent
    +
    +- brevecombcy
    +
    +- uni030C.alt
    +
    +

    [code: unreachable-glyphs]

    +
+

Check if each glyph has the recommended amount of contours.

+
Check ID: com.google.fonts/check/contour_count
+ +
⚠️ RubikLines-Regular.ttf
  • ⚠️ WARN

    This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

    +

    The following glyphs do not have the recommended number of contours:

    +
    - Glyph name: exclam	Contours detected: 102	Expected: 2
    +
    +- Glyph name: quotedbl	Contours detected: 100	Expected: 2
    +
    +- Glyph name: numbersign	Contours detected: 154	Expected: 2
    +
    +- Glyph name: dollar	Contours detected: 225	Expected: 1, 3 or 5
    +
    +- Glyph name: percent	Contours detected: 169	Expected: 5
    +
    +- Glyph name: ampersand	Contours detected: 120	Expected: 1, 2 or 3
    +
    +- Glyph name: quotesingle	Contours detected: 48	Expected: 1
    +
    +- Glyph name: parenleft	Contours detected: 107	Expected: 1
    +
    +- Glyph name: parenright	Contours detected: 123	Expected: 1
    +
    +- Glyph name: asterisk	Contours detected: 78	Expected: 1 or 4
    +
    +- Glyph name: plus	Contours detected: 88	Expected: 1
    +
    +- Glyph name: comma	Contours detected: 35	Expected: 1
    +
    +- Glyph name: hyphen	Contours detected: 92	Expected: 1
    +
    +- Glyph name: period	Contours detected: 21	Expected: 1
    +
    +- Glyph name: slash	Contours detected: 110	Expected: 1
    +
    +- Glyph name: zero	Contours detected: 178	Expected: 2 or 3
    +
    +- Glyph name: one	Contours detected: 156	Expected: 1
    +
    +- Glyph name: two	Contours detected: 183	Expected: 1
    +
    +- Glyph name: three	Contours detected: 226	Expected: 1
    +
    +- Glyph name: four	Contours detected: 112	Expected: 1 or 2
    +
    +- Glyph name: five	Contours detected: 153	Expected: 1
    +
    +- Glyph name: six	Contours detected: 128	Expected: 1 or 2
    +
    +- Glyph name: seven	Contours detected: 144	Expected: 1
    +
    +- Glyph name: eight	Contours detected: 146	Expected: 3
    +
    +- Glyph name: nine	Contours detected: 156	Expected: 1 or 2
    +
    +- Glyph name: colon	Contours detected: 52	Expected: 2
    +
    +- Glyph name: semicolon	Contours detected: 69	Expected: 2
    +
    +- Glyph name: less	Contours detected: 107	Expected: 1
    +
    +- Glyph name: equal	Contours detected: 76	Expected: 2
    +
    +- Glyph name: greater	Contours detected: 84	Expected: 1
    +
    +- Glyph name: question	Contours detected: 146	Expected: 2
    +
    +- Glyph name: at	Contours detected: 231	Expected: 2
    +
    +- Glyph name: A	Contours detected: 140	Expected: 2
    +
    +- Glyph name: B	Contours detected: 144	Expected: 2 or 3
    +
    +- Glyph name: C	Contours detected: 157	Expected: 1
    +
    +- Glyph name: D	Contours detected: 166	Expected: 2
    +
    +- Glyph name: E	Contours detected: 149	Expected: 1
    +
    +- Glyph name: F	Contours detected: 146	Expected: 1
    +
    +- Glyph name: G	Contours detected: 155	Expected: 1
    +
    +- Glyph name: H	Contours detected: 160	Expected: 1
    +
    +- Glyph name: I	Contours detected: 119	Expected: 1
    +
    +- Glyph name: J	Contours detected: 174	Expected: 1
    +
    +- Glyph name: K	Contours detected: 108	Expected: 1 or 2
    +
    +- Glyph name: L	Contours detected: 134	Expected: 1
    +
    +- Glyph name: M	Contours detected: 181	Expected: 1
    +
    +- Glyph name: N	Contours detected: 178	Expected: 1
    +
    +- Glyph name: O	Contours detected: 168	Expected: 2
    +
    +- Glyph name: P	Contours detected: 192	Expected: 1 or 2
    +
    +- Glyph name: Q	Contours detected: 148	Expected: 2
    +
    +- Glyph name: R	Contours detected: 190	Expected: 1 or 2
    +
    +- Glyph name: S	Contours detected: 190	Expected: 1
    +
    +- Glyph name: T	Contours detected: 179	Expected: 1
    +
    +- Glyph name: U	Contours detected: 185	Expected: 1
    +
    +- Glyph name: V	Contours detected: 172	Expected: 1
    +
    +- Glyph name: W	Contours detected: 105	Expected: 1 or 2
    +
    +- Glyph name: X	Contours detected: 152	Expected: 1
    +
    +- Glyph name: Y	Contours detected: 113	Expected: 1
    +
    +- Glyph name: Z	Contours detected: 190	Expected: 1
    +
    +- Glyph name: bracketleft	Contours detected: 85	Expected: 1
    +
    +- Glyph name: backslash	Contours detected: 81	Expected: 1
    +
    +- Glyph name: bracketright	Contours detected: 215	Expected: 1
    +
    +- Glyph name: asciicircum	Contours detected: 43	Expected: 1
    +
    +- Glyph name: underscore	Contours detected: 84	Expected: 1
    +
    +- Glyph name: grave	Contours detected: 57	Expected: 1
    +
    +- Glyph name: a	Contours detected: 136	Expected: 2
    +
    +- Glyph name: b	Contours detected: 160	Expected: 2
    +
    +- Glyph name: c	Contours detected: 142	Expected: 1
    +
    +- Glyph name: d	Contours detected: 154	Expected: 2
    +
    +- Glyph name: e	Contours detected: 113	Expected: 2
    +
    +- Glyph name: f	Contours detected: 135	Expected: 1
    +
    +- Glyph name: g	Contours detected: 196	Expected: 2 or 3
    +
    +- Glyph name: h	Contours detected: 96	Expected: 1
    +
    +- Glyph name: i	Contours detected: 129	Expected: 2
    +
    +- Glyph name: j	Contours detected: 187	Expected: 2
    +
    +- Glyph name: k	Contours detected: 106	Expected: 1 or 2
    +
    +- Glyph name: l	Contours detected: 137	Expected: 1
    +
    +- Glyph name: m	Contours detected: 184	Expected: 1
    +
    +- Glyph name: n	Contours detected: 162	Expected: 1
    +
    +- Glyph name: o	Contours detected: 180	Expected: 2
    +
    +- Glyph name: p	Contours detected: 133	Expected: 2
    +
    +- Glyph name: q	Contours detected: 142	Expected: 2
    +
    +- Glyph name: r	Contours detected: 120	Expected: 1
    +
    +- Glyph name: s	Contours detected: 105	Expected: 1
    +
    +- Glyph name: t	Contours detected: 131	Expected: 1
    +
    +- Glyph name: u	Contours detected: 110	Expected: 1
    +
    +- Glyph name: v	Contours detected: 118	Expected: 1
    +
    +- Glyph name: w	Contours detected: 175	Expected: 1
    +
    +- Glyph name: x	Contours detected: 132	Expected: 1
    +
    +- Glyph name: y	Contours detected: 126	Expected: 1
    +
    +- Glyph name: z	Contours detected: 144	Expected: 1
    +
    +- Glyph name: braceleft	Contours detected: 116	Expected: 1
    +
    +- Glyph name: bar	Contours detected: 159	Expected: 1
    +
    +- Glyph name: braceright	Contours detected: 107	Expected: 1
    +
    +- Glyph name: asciitilde	Contours detected: 79	Expected: 1
    +
    +- Glyph name: exclamdown	Contours detected: 97	Expected: 2
    +
    +- Glyph name: cent	Contours detected: 93	Expected: 1 or 2
    +
    +- Glyph name: sterling	Contours detected: 150	Expected: 1 or 2
    +
    +- Glyph name: currency	Contours detected: 145	Expected: 2
    +
    +- Glyph name: yen	Contours detected: 173	Expected: 1 or 2
    +
    +- Glyph name: brokenbar	Contours detected: 101	Expected: 2
    +
    +- Glyph name: section	Contours detected: 152	Expected: 2
    +
    +- Glyph name: dieresis	Contours detected: 68	Expected: 2
    +
    +- Glyph name: copyright	Contours detected: 150	Expected: 3
    +
    +- Glyph name: ordfeminine	Contours detected: 36	Expected: 2 or 3
    +
    +- Glyph name: guillemotleft	Contours detected: 118	Expected: 2
    +
    +- Glyph name: logicalnot	Contours detected: 86	Expected: 1
    +
    +- Glyph name: registered	Contours detected: 153	Expected: 3 or 4
    +
    +- Glyph name: macron	Contours detected: 52	Expected: 1
    +
    +- Glyph name: degree	Contours detected: 71	Expected: 2
    +
    +- Glyph name: plusminus	Contours detected: 151	Expected: 1 or 2
    +
    +- Glyph name: uni00B2	Contours detected: 66	Expected: 1
    +
    +- Glyph name: uni00B3	Contours detected: 67	Expected: 1
    +
    +- Glyph name: acute	Contours detected: 39	Expected: 1
    +
    +- Glyph name: uni00B5	Contours detected: 153	Expected: 1
    +
    +- Glyph name: paragraph	Contours detected: 185	Expected: 1, 2 or 3
    +
    +- Glyph name: periodcentered	Contours detected: 39	Expected: 1
    +
    +- Glyph name: cedilla	Contours detected: 31	Expected: 1
    +
    +- Glyph name: uni00B9	Contours detected: 54	Expected: 1
    +
    +- Glyph name: ordmasculine	Contours detected: 71	Expected: 2 or 3
    +
    +- Glyph name: guillemotright	Contours detected: 122	Expected: 2
    +
    +- Glyph name: onequarter	Contours detected: 172	Expected: 3 or 4
    +
    +- Glyph name: onehalf	Contours detected: 192	Expected: 3
    +
    +- Glyph name: threequarters	Contours detected: 185	Expected: 3 or 4
    +
    +- Glyph name: questiondown	Contours detected: 120	Expected: 2
    +
    +- Glyph name: Agrave	Contours detected: 191	Expected: 3
    +
    +- Glyph name: Aacute	Contours detected: 188	Expected: 3
    +
    +- Glyph name: Acircumflex	Contours detected: 182	Expected: 3
    +
    +- Glyph name: Atilde	Contours detected: 200	Expected: 3
    +
    +- Glyph name: Adieresis	Contours detected: 196	Expected: 4
    +
    +- Glyph name: Aring	Contours detected: 170	Expected: 3 or 4
    +
    +- Glyph name: AE	Contours detected: 275	Expected: 2
    +
    +- Glyph name: Ccedilla	Contours detected: 169	Expected: 1 or 2
    +
    +- Glyph name: Egrave	Contours detected: 200	Expected: 2
    +
    +- Glyph name: Eacute	Contours detected: 197	Expected: 2
    +
    +- Glyph name: Ecircumflex	Contours detected: 191	Expected: 2
    +
    +- Glyph name: Edieresis	Contours detected: 205	Expected: 3
    +
    +- Glyph name: Igrave	Contours detected: 170	Expected: 2
    +
    +- Glyph name: Iacute	Contours detected: 167	Expected: 2
    +
    +- Glyph name: Icircumflex	Contours detected: 161	Expected: 2
    +
    +- Glyph name: Idieresis	Contours detected: 175	Expected: 3
    +
    +- Glyph name: Eth	Contours detected: 184	Expected: 2
    +
    +- Glyph name: Ntilde	Contours detected: 238	Expected: 2
    +
    +- Glyph name: Ograve	Contours detected: 219	Expected: 3
    +
    +- Glyph name: Oacute	Contours detected: 216	Expected: 3
    +
    +- Glyph name: Ocircumflex	Contours detected: 210	Expected: 3
    +
    +- Glyph name: Otilde	Contours detected: 228	Expected: 3
    +
    +- Glyph name: Odieresis	Contours detected: 224	Expected: 4
    +
    +- Glyph name: multiply	Contours detected: 112	Expected: 1
    +
    +- Glyph name: Oslash	Contours detected: 151	Expected: 2 or 3
    +
    +- Glyph name: Ugrave	Contours detected: 236	Expected: 2
    +
    +- Glyph name: Uacute	Contours detected: 233	Expected: 2
    +
    +- Glyph name: Ucircumflex	Contours detected: 227	Expected: 2
    +
    +- Glyph name: Udieresis	Contours detected: 241	Expected: 3
    +
    +- Glyph name: Yacute	Contours detected: 161	Expected: 2
    +
    +- Glyph name: Thorn	Contours detected: 160	Expected: 1 or 2
    +
    +- Glyph name: germandbls	Contours detected: 170	Expected: 1
    +
    +- Glyph name: agrave	Contours detected: 193	Expected: 3
    +
    +- Glyph name: aacute	Contours detected: 175	Expected: 3
    +
    +- Glyph name: acircumflex	Contours detected: 181	Expected: 3
    +
    +- Glyph name: atilde	Contours detected: 199	Expected: 3
    +
    +- Glyph name: adieresis	Contours detected: 204	Expected: 4
    +
    +- Glyph name: aring	Contours detected: 164	Expected: 4
    +
    +- Glyph name: ae	Contours detected: 193	Expected: 3
    +
    +- Glyph name: ccedilla	Contours detected: 123	Expected: 1 or 2
    +
    +- Glyph name: egrave	Contours detected: 170	Expected: 3
    +
    +- Glyph name: eacute	Contours detected: 152	Expected: 3
    +
    +- Glyph name: ecircumflex	Contours detected: 158	Expected: 3
    +
    +- Glyph name: edieresis	Contours detected: 181	Expected: 4
    +
    +- Glyph name: igrave	Contours detected: 130	Expected: 2
    +
    +- Glyph name: iacute	Contours detected: 112	Expected: 2
    +
    +- Glyph name: icircumflex	Contours detected: 118	Expected: 2
    +
    +- Glyph name: idieresis	Contours detected: 141	Expected: 3
    +
    +- Glyph name: eth	Contours detected: 151	Expected: 2
    +
    +- Glyph name: ntilde	Contours detected: 225	Expected: 2
    +
    +- Glyph name: ograve	Contours detected: 237	Expected: 3
    +
    +- Glyph name: oacute	Contours detected: 219	Expected: 3
    +
    +- Glyph name: ocircumflex	Contours detected: 225	Expected: 3
    +
    +- Glyph name: otilde	Contours detected: 243	Expected: 3
    +
    +- Glyph name: odieresis	Contours detected: 248	Expected: 4
    +
    +- Glyph name: divide	Contours detected: 116	Expected: 3
    +
    +- Glyph name: oslash	Contours detected: 177	Expected: 3
    +
    +- Glyph name: ugrave	Contours detected: 167	Expected: 2
    +
    +- Glyph name: uacute	Contours detected: 149	Expected: 2
    +
    +- Glyph name: ucircumflex	Contours detected: 155	Expected: 2
    +
    +- Glyph name: udieresis	Contours detected: 178	Expected: 3
    +
    +- Glyph name: yacute	Contours detected: 165	Expected: 2
    +
    +- Glyph name: thorn	Contours detected: 130	Expected: 2
    +
    +- Glyph name: ydieresis	Contours detected: 194	Expected: 3
    +
    +- Glyph name: Amacron	Contours detected: 201	Expected: 3
    +
    +- Glyph name: amacron	Contours detected: 188	Expected: 3
    +
    +- Glyph name: Abreve	Contours detected: 171	Expected: 3
    +
    +- Glyph name: abreve	Contours detected: 198	Expected: 3
    +
    +- Glyph name: Aogonek	Contours detected: 122	Expected: 2 or 3
    +
    +- Glyph name: aogonek	Contours detected: 146	Expected: 2
    +
    +- Glyph name: Cacute	Contours detected: 205	Expected: 2
    +
    +- Glyph name: cacute	Contours detected: 181	Expected: 2
    +
    +- Glyph name: Ccircumflex	Contours detected: 199	Expected: 2
    +
    +- Glyph name: ccircumflex	Contours detected: 187	Expected: 2
    +
    +- Glyph name: Cdotaccent	Contours detected: 196	Expected: 2
    +
    +- Glyph name: cdotaccent	Contours detected: 176	Expected: 2
    +
    +- Glyph name: Ccaron	Contours detected: 202	Expected: 2
    +
    +- Glyph name: ccaron	Contours detected: 216	Expected: 2
    +
    +- Glyph name: Dcaron	Contours detected: 211	Expected: 3
    +
    +- Glyph name: dcaron	Contours detected: 199	Expected: 3
    +
    +- Glyph name: Dcroat	Contours detected: 231	Expected: 2
    +
    +- Glyph name: dcroat	Contours detected: 148	Expected: 2
    +
    +- Glyph name: Emacron	Contours detected: 210	Expected: 2
    +
    +- Glyph name: emacron	Contours detected: 165	Expected: 3
    +
    +- Glyph name: Ebreve	Contours detected: 180	Expected: 2
    +
    +- Glyph name: ebreve	Contours detected: 175	Expected: 3
    +
    +- Glyph name: Edotaccent	Contours detected: 188	Expected: 2
    +
    +- Glyph name: edotaccent	Contours detected: 147	Expected: 3
    +
    +- Glyph name: Eogonek	Contours detected: 163	Expected: 1 or 2
    +
    +- Glyph name: eogonek	Contours detected: 161	Expected: 2
    +
    +- Glyph name: Ecaron	Contours detected: 194	Expected: 2
    +
    +- Glyph name: ecaron	Contours detected: 187	Expected: 3
    +
    +- Glyph name: Gcircumflex	Contours detected: 197	Expected: 2
    +
    +- Glyph name: gcircumflex	Contours detected: 241	Expected: 3 or 4
    +
    +- Glyph name: Gbreve	Contours detected: 186	Expected: 2
    +
    +- Glyph name: gbreve	Contours detected: 258	Expected: 3 or 4
    +
    +- Glyph name: Gdotaccent	Contours detected: 194	Expected: 2
    +
    +- Glyph name: gdotaccent	Contours detected: 230	Expected: 3 or 4
    +
    +- Glyph name: uni0122	Contours detected: 182	Expected: 2
    +
    +- Glyph name: uni0123	Contours detected: 236	Expected: 3 or 4
    +
    +- Glyph name: Hcircumflex	Contours detected: 202	Expected: 2
    +
    +- Glyph name: hcircumflex	Contours detected: 141	Expected: 2
    +
    +- Glyph name: Hbar	Contours detected: 195	Expected: 2
    +
    +- Glyph name: hbar	Contours detected: 137	Expected: 1
    +
    +- Glyph name: Itilde	Contours detected: 179	Expected: 2
    +
    +- Glyph name: itilde	Contours detected: 136	Expected: 2
    +
    +- Glyph name: Imacron	Contours detected: 180	Expected: 2
    +
    +- Glyph name: imacron	Contours detected: 125	Expected: 2
    +
    +- Glyph name: Ibreve	Contours detected: 150	Expected: 2
    +
    +- Glyph name: ibreve	Contours detected: 135	Expected: 2
    +
    +- Glyph name: Iogonek	Contours detected: 50	Expected: 1 or 2
    +
    +- Glyph name: iogonek	Contours detected: 129	Expected: 2 or 3
    +
    +- Glyph name: Idotaccent	Contours detected: 158	Expected: 2
    +
    +- Glyph name: dotlessi	Contours detected: 73	Expected: 1
    +
    +- Glyph name: IJ	Contours detected: 207	Expected: 1 or 2
    +
    +- Glyph name: ij	Contours detected: 316	Expected: 3 or 4
    +
    +- Glyph name: Jcircumflex	Contours detected: 216	Expected: 2
    +
    +- Glyph name: jcircumflex	Contours detected: 203	Expected: 2
    +
    +- Glyph name: uni0136	Contours detected: 135	Expected: 2 or 3
    +
    +- Glyph name: uni0137	Contours detected: 135	Expected: 2 or 3
    +
    +- Glyph name: kgreenlandic	Contours detected: 125	Expected: 1 or 2
    +
    +- Glyph name: Lacute	Contours detected: 182	Expected: 2
    +
    +- Glyph name: lacute	Contours detected: 176	Expected: 2
    +
    +- Glyph name: uni013B	Contours detected: 161	Expected: 2
    +
    +- Glyph name: uni013C	Contours detected: 166	Expected: 2
    +
    +- Glyph name: Lcaron	Contours detected: 179	Expected: 2
    +
    +- Glyph name: lcaron	Contours detected: 182	Expected: 2
    +
    +- Glyph name: Ldot	Contours detected: 156	Expected: 2
    +
    +- Glyph name: ldot	Contours detected: 179	Expected: 2
    +
    +- Glyph name: Lslash	Contours detected: 115	Expected: 1
    +
    +- Glyph name: lslash	Contours detected: 103	Expected: 1
    +
    +- Glyph name: Nacute	Contours detected: 226	Expected: 2
    +
    +- Glyph name: nacute	Contours detected: 201	Expected: 2
    +
    +- Glyph name: uni0145	Contours detected: 205	Expected: 2
    +
    +- Glyph name: uni0146	Contours detected: 191	Expected: 2
    +
    +- Glyph name: Ncaron	Contours detected: 223	Expected: 2
    +
    +- Glyph name: ncaron	Contours detected: 236	Expected: 2
    +
    +- Glyph name: napostrophe	Contours detected: 179	Expected: 2
    +
    +- Glyph name: Eng	Contours detected: 206	Expected: 1
    +
    +- Glyph name: eng	Contours detected: 231	Expected: 1
    +
    +- Glyph name: Omacron	Contours detected: 229	Expected: 3
    +
    +- Glyph name: omacron	Contours detected: 232	Expected: 3
    +
    +- Glyph name: Obreve	Contours detected: 199	Expected: 3
    +
    +- Glyph name: obreve	Contours detected: 242	Expected: 3
    +
    +- Glyph name: Ohungarumlaut	Contours detected: 217	Expected: 4
    +
    +- Glyph name: ohungarumlaut	Contours detected: 267	Expected: 4
    +
    +- Glyph name: OE	Contours detected: 252	Expected: 2
    +
    +- Glyph name: oe	Contours detected: 156	Expected: 3
    +
    +- Glyph name: Racute	Contours detected: 238	Expected: 3
    +
    +- Glyph name: racute	Contours detected: 159	Expected: 2
    +
    +- Glyph name: uni0156	Contours detected: 217	Expected: 3
    +
    +- Glyph name: uni0157	Contours detected: 149	Expected: 2
    +
    +- Glyph name: Rcaron	Contours detected: 235	Expected: 3
    +
    +- Glyph name: rcaron	Contours detected: 194	Expected: 2
    +
    +- Glyph name: Sacute	Contours detected: 238	Expected: 2
    +
    +- Glyph name: sacute	Contours detected: 144	Expected: 2
    +
    +- Glyph name: Scircumflex	Contours detected: 232	Expected: 2
    +
    +- Glyph name: scircumflex	Contours detected: 150	Expected: 2
    +
    +- Glyph name: Scedilla	Contours detected: 187	Expected: 1 or 2
    +
    +- Glyph name: scedilla	Contours detected: 154	Expected: 1 or 2
    +
    +- Glyph name: Scaron	Contours detected: 235	Expected: 2
    +
    +- Glyph name: scaron	Contours detected: 179	Expected: 2
    +
    +- Glyph name: Tcaron	Contours detected: 224	Expected: 2
    +
    +- Glyph name: tcaron	Contours detected: 176	Expected: 2
    +
    +- Glyph name: Tbar	Contours detected: 132	Expected: 1
    +
    +- Glyph name: tbar	Contours detected: 127	Expected: 1
    +
    +- Glyph name: Utilde	Contours detected: 245	Expected: 2
    +
    +- Glyph name: utilde	Contours detected: 173	Expected: 2
    +
    +- Glyph name: Umacron	Contours detected: 246	Expected: 2
    +
    +- Glyph name: umacron	Contours detected: 162	Expected: 2
    +
    +- Glyph name: Ubreve	Contours detected: 216	Expected: 2
    +
    +- Glyph name: ubreve	Contours detected: 172	Expected: 2
    +
    +- Glyph name: Uring	Contours detected: 215	Expected: 3
    +
    +- Glyph name: uring	Contours detected: 138	Expected: 3
    +
    +- Glyph name: Uhungarumlaut	Contours detected: 234	Expected: 3
    +
    +- Glyph name: uhungarumlaut	Contours detected: 197	Expected: 3
    +
    +- Glyph name: Uogonek	Contours detected: 128	Expected: 1
    +
    +- Glyph name: uogonek	Contours detected: 134	Expected: 1
    +
    +- Glyph name: Wcircumflex	Contours detected: 147	Expected: 2
    +
    +- Glyph name: wcircumflex	Contours detected: 220	Expected: 2
    +
    +- Glyph name: Ycircumflex	Contours detected: 155	Expected: 2
    +
    +- Glyph name: ycircumflex	Contours detected: 171	Expected: 2
    +
    +- Glyph name: Ydieresis	Contours detected: 169	Expected: 3
    +
    +- Glyph name: Zacute	Contours detected: 238	Expected: 2
    +
    +- Glyph name: zacute	Contours detected: 183	Expected: 2
    +
    +- Glyph name: Zdotaccent	Contours detected: 229	Expected: 2
    +
    +- Glyph name: zdotaccent	Contours detected: 178	Expected: 2
    +
    +- Glyph name: Zcaron	Contours detected: 235	Expected: 2
    +
    +- Glyph name: zcaron	Contours detected: 218	Expected: 2
    +
    +- Glyph name: longs	Contours detected: 134	Expected: 1
    +
    +- Glyph name: florin	Contours detected: 136	Expected: 1
    +
    +- Glyph name: AEacute	Contours detected: 323	Expected: 3
    +
    +- Glyph name: aeacute	Contours detected: 232	Expected: 4
    +
    +- Glyph name: Oslashacute	Contours detected: 199	Expected: 4
    +
    +- Glyph name: oslashacute	Contours detected: 216	Expected: 4
    +
    +- Glyph name: uni0218	Contours detected: 217	Expected: 2
    +
    +- Glyph name: uni0219	Contours detected: 134	Expected: 2
    +
    +- Glyph name: uni021A	Contours detected: 206	Expected: 2
    +
    +- Glyph name: uni021B	Contours detected: 160	Expected: 2
    +
    +- Glyph name: uni0237	Contours detected: 158	Expected: 1
    +
    +- Glyph name: uni02BC	Contours detected: 29	Expected: 1
    +
    +- Glyph name: circumflex	Contours detected: 45	Expected: 1
    +
    +- Glyph name: caron	Contours detected: 74	Expected: 1
    +
    +- Glyph name: breve	Contours detected: 62	Expected: 1
    +
    +- Glyph name: dotaccent	Contours detected: 34	Expected: 1
    +
    +- Glyph name: ring	Contours detected: 28	Expected: 2
    +
    +- Glyph name: ogonek	Contours detected: 46	Expected: 1
    +
    +- Glyph name: tilde	Contours detected: 63	Expected: 1
    +
    +- Glyph name: hungarumlaut	Contours detected: 87	Expected: 2
    +
    +- Glyph name: gravecomb	Contours detected: 57	Expected: 1
    +
    +- Glyph name: acutecomb	Contours detected: 39	Expected: 1
    +
    +- Glyph name: uni0302	Contours detected: 45	Expected: 1
    +
    +- Glyph name: tildecomb	Contours detected: 63	Expected: 1
    +
    +- Glyph name: uni0304	Contours detected: 52	Expected: 1
    +
    +- Glyph name: uni0306	Contours detected: 62	Expected: 1
    +
    +- Glyph name: uni0307	Contours detected: 34	Expected: 1
    +
    +- Glyph name: uni0308	Contours detected: 68	Expected: 2
    +
    +- Glyph name: uni030A	Contours detected: 28	Expected: 2
    +
    +- Glyph name: uni030B	Contours detected: 87	Expected: 2
    +
    +- Glyph name: uni030C	Contours detected: 74	Expected: 1
    +
    +- Glyph name: uni0312	Contours detected: 40	Expected: 1
    +
    +- Glyph name: uni0326	Contours detected: 29	Expected: 1
    +
    +- Glyph name: uni0327	Contours detected: 31	Expected: 1
    +
    +- Glyph name: uni0328	Contours detected: 46	Expected: 1
    +
    +- Glyph name: uni0335	Contours detected: 60	Expected: 1
    +
    +- Glyph name: uni0337	Contours detected: 50	Expected: 1
    +
    +- Glyph name: uni0338	Contours detected: 67	Expected: 1
    +
    +- Glyph name: uni0400	Contours detected: 200	Expected: 2
    +
    +- Glyph name: uni0401	Contours detected: 217	Expected: 3
    +
    +- Glyph name: uni0402	Contours detected: 168	Expected: 1
    +
    +- Glyph name: uni0403	Contours detected: 169	Expected: 2
    +
    +- Glyph name: uni0404	Contours detected: 124	Expected: 1
    +
    +- Glyph name: uni0405	Contours detected: 190	Expected: 1
    +
    +- Glyph name: uni0406	Contours detected: 119	Expected: 1
    +
    +- Glyph name: uni0407	Contours detected: 187	Expected: 3
    +
    +- Glyph name: uni0408	Contours detected: 174	Expected: 1
    +
    +- Glyph name: uni0409	Contours detected: 196	Expected: 2
    +
    +- Glyph name: uni040A	Contours detected: 258	Expected: 2
    +
    +- Glyph name: uni040B	Contours detected: 182	Expected: 1
    +
    +- Glyph name: uni040C	Contours detected: 203	Expected: 2
    +
    +- Glyph name: uni040D	Contours detected: 287	Expected: 2
    +
    +- Glyph name: uni040E	Contours detected: 210	Expected: 2
    +
    +- Glyph name: uni040F	Contours detected: 201	Expected: 1
    +
    +- Glyph name: uni0410	Contours detected: 140	Expected: 2
    +
    +- Glyph name: uni0411	Contours detected: 137	Expected: 2
    +
    +- Glyph name: uni0412	Contours detected: 144	Expected: 3
    +
    +- Glyph name: uni0413	Contours detected: 121	Expected: 1
    +
    +- Glyph name: uni0414	Contours detected: 253	Expected: 2
    +
    +- Glyph name: uni0415	Contours detected: 149	Expected: 1
    +
    +- Glyph name: uni0416	Contours detected: 334	Expected: 1
    +
    +- Glyph name: uni0417	Contours detected: 201	Expected: 1
    +
    +- Glyph name: uni0418	Contours detected: 236	Expected: 1
    +
    +- Glyph name: uni0419	Contours detected: 291	Expected: 2
    +
    +- Glyph name: uni041A	Contours detected: 155	Expected: 1
    +
    +- Glyph name: uni041B	Contours detected: 228	Expected: 1
    +
    +- Glyph name: uni041C	Contours detected: 181	Expected: 1
    +
    +- Glyph name: uni041D	Contours detected: 160	Expected: 1
    +
    +- Glyph name: uni041E	Contours detected: 168	Expected: 2
    +
    +- Glyph name: uni041F	Contours detected: 187	Expected: 1
    +
    +- Glyph name: uni0420	Contours detected: 192	Expected: 1 or 2
    +
    +- Glyph name: uni0421	Contours detected: 157	Expected: 1
    +
    +- Glyph name: uni0422	Contours detected: 179	Expected: 1
    +
    +- Glyph name: uni0423	Contours detected: 155	Expected: 1
    +
    +- Glyph name: uni0424	Contours detected: 226	Expected: 3
    +
    +- Glyph name: uni0425	Contours detected: 152	Expected: 1
    +
    +- Glyph name: uni0426	Contours detected: 179	Expected: 1
    +
    +- Glyph name: uni0427	Contours detected: 193	Expected: 1
    +
    +- Glyph name: uni0428	Contours detected: 238	Expected: 1
    +
    +- Glyph name: uni0429	Contours detected: 212	Expected: 1
    +
    +- Glyph name: uni042A	Contours detected: 151	Expected: 2
    +
    +- Glyph name: uni042B	Contours detected: 200	Expected: 3
    +
    +- Glyph name: uni042C	Contours detected: 102	Expected: 2
    +
    +- Glyph name: uni042D	Contours detected: 199	Expected: 1
    +
    +- Glyph name: uni042E	Contours detected: 177	Expected: 2
    +
    +- Glyph name: uni042F	Contours detected: 156	Expected: 2
    +
    +- Glyph name: uni0430	Contours detected: 136	Expected: 2
    +
    +- Glyph name: uni0431	Contours detected: 187	Expected: 2
    +
    +- Glyph name: uni0432	Contours detected: 122	Expected: 3
    +
    +- Glyph name: uni0433	Contours detected: 106	Expected: 1
    +
    +- Glyph name: uni0434	Contours detected: 173	Expected: 2
    +
    +- Glyph name: uni0435	Contours detected: 113	Expected: 2
    +
    +- Glyph name: uni0436	Contours detected: 209	Expected: 1
    +
    +- Glyph name: uni0437	Contours detected: 138	Expected: 1
    +
    +- Glyph name: uni0438	Contours detected: 119	Expected: 1
    +
    +- Glyph name: uni0439	Contours detected: 192	Expected: 2
    +
    +- Glyph name: uni043A	Contours detected: 145	Expected: 1
    +
    +- Glyph name: uni043B	Contours detected: 143	Expected: 1
    +
    +- Glyph name: uni043C	Contours detected: 149	Expected: 1
    +
    +- Glyph name: uni043D	Contours detected: 141	Expected: 1
    +
    +- Glyph name: uni043E	Contours detected: 180	Expected: 2
    +
    +- Glyph name: uni043F	Contours detected: 160	Expected: 1
    +
    +- Glyph name: uni0440	Contours detected: 133	Expected: 2
    +
    +- Glyph name: uni0441	Contours detected: 142	Expected: 1
    +
    +- Glyph name: uni0442	Contours detected: 139	Expected: 1
    +
    +- Glyph name: uni0443	Contours detected: 97	Expected: 1
    +
    +- Glyph name: uni0444	Contours detected: 175	Expected: 3
    +
    +- Glyph name: uni0445	Contours detected: 132	Expected: 1
    +
    +- Glyph name: uni0446	Contours detected: 149	Expected: 1
    +
    +- Glyph name: uni0447	Contours detected: 163	Expected: 1
    +
    +- Glyph name: uni0448	Contours detected: 195	Expected: 1
    +
    +- Glyph name: uni0449	Contours detected: 169	Expected: 1
    +
    +- Glyph name: uni044A	Contours detected: 170	Expected: 2
    +
    +- Glyph name: uni044B	Contours detected: 164	Expected: 3
    +
    +- Glyph name: uni044C	Contours detected: 69	Expected: 2
    +
    +- Glyph name: uni044D	Contours detected: 127	Expected: 1
    +
    +- Glyph name: uni044E	Contours detected: 175	Expected: 2
    +
    +- Glyph name: uni044F	Contours detected: 119	Expected: 2
    +
    +- Glyph name: uni0450	Contours detected: 170	Expected: 3
    +
    +- Glyph name: uni0451	Contours detected: 181	Expected: 4
    +
    +- Glyph name: uni0452	Contours detected: 118	Expected: 1
    +
    +- Glyph name: uni0453	Contours detected: 145	Expected: 2
    +
    +- Glyph name: uni0454	Contours detected: 133	Expected: 1
    +
    +- Glyph name: uni0455	Contours detected: 105	Expected: 1
    +
    +- Glyph name: uni0456	Contours detected: 129	Expected: 2
    +
    +- Glyph name: uni0457	Contours detected: 141	Expected: 3
    +
    +- Glyph name: uni0458	Contours detected: 187	Expected: 2
    +
    +- Glyph name: uni0459	Contours detected: 193	Expected: 2
    +
    +- Glyph name: uni045A	Contours detected: 159	Expected: 2
    +
    +- Glyph name: uni045B	Contours detected: 150	Expected: 1
    +
    +- Glyph name: uni045C	Contours detected: 184	Expected: 2
    +
    +- Glyph name: uni045D	Contours detected: 176	Expected: 2
    +
    +- Glyph name: uni045E	Contours detected: 170	Expected: 2
    +
    +- Glyph name: uni045F	Contours detected: 155	Expected: 1 or 2
    +
    +- Glyph name: uni0462	Contours detected: 154	Expected: 2
    +
    +- Glyph name: uni0463	Contours detected: 131	Expected: 2
    +
    +- Glyph name: uni046A	Contours detected: 279	Expected: 2
    +
    +- Glyph name: uni046B	Contours detected: 233	Expected: 2
    +
    +- Glyph name: uni0472	Contours detected: 178	Expected: 3
    +
    +- Glyph name: uni0473	Contours detected: 101	Expected: 3
    +
    +- Glyph name: uni0474	Contours detected: 135	Expected: 1
    +
    +- Glyph name: uni0475	Contours detected: 123	Expected: 1
    +
    +- Glyph name: uni0490	Contours detected: 121	Expected: 1
    +
    +- Glyph name: uni0491	Contours detected: 92	Expected: 1
    +
    +- Glyph name: uni0492	Contours detected: 177	Expected: 1
    +
    +- Glyph name: uni0493	Contours detected: 110	Expected: 1
    +
    +- Glyph name: uni0494	Contours detected: 93	Expected: 1
    +
    +- Glyph name: uni0495	Contours detected: 178	Expected: 1
    +
    +- Glyph name: uni0496	Contours detected: 301	Expected: 1 or 2
    +
    +- Glyph name: uni0497	Contours detected: 202	Expected: 1 or 2
    +
    +- Glyph name: uni0498	Contours detected: 182	Expected: 1 or 2
    +
    +- Glyph name: uni0499	Contours detected: 133	Expected: 1 or 2
    +
    +- Glyph name: uni049A	Contours detected: 174	Expected: 1 or 2
    +
    +- Glyph name: uni049B	Contours detected: 147	Expected: 1 or 2
    +
    +- Glyph name: uni049C	Contours detected: 166	Expected: 1
    +
    +- Glyph name: uni049D	Contours detected: 130	Expected: 1
    +
    +- Glyph name: uni04A0	Contours detected: 175	Expected: 1
    +
    +- Glyph name: uni04A1	Contours detected: 169	Expected: 1
    +
    +- Glyph name: uni04A2	Contours detected: 149	Expected: 1 or 2
    +
    +- Glyph name: uni04A3	Contours detected: 148	Expected: 1 or 2
    +
    +- Glyph name: uni04A4	Contours detected: 223	Expected: 1
    +
    +- Glyph name: uni04A5	Contours detected: 125	Expected: 1
    +
    +- Glyph name: uni04AA	Contours detected: 136	Expected: 1 or 2
    +
    +- Glyph name: uni04AB	Contours detected: 117	Expected: 1 or 2
    +
    +- Glyph name: Ustraitcy	Contours detected: 173	Expected: 1
    +
    +- Glyph name: ustraitcy	Contours detected: 119	Expected: 1
    +
    +- Glyph name: Ustraitstrokecy	Contours detected: 144	Expected: 1
    +
    +- Glyph name: ustraitstrokecy	Contours detected: 167	Expected: 1
    +
    +- Glyph name: uni04B6	Contours detected: 173	Expected: 1 or 2
    +
    +- Glyph name: uni04B7	Contours detected: 174	Expected: 1 or 2
    +
    +- Glyph name: uni04B8	Contours detected: 205	Expected: 1
    +
    +- Glyph name: uni04B9	Contours detected: 169	Expected: 1
    +
    +- Glyph name: uni04BA	Contours detected: 155	Expected: 1
    +
    +- Glyph name: uni04BB	Contours detected: 96	Expected: 1
    +
    +- Glyph name: uni04C0	Contours detected: 119	Expected: 1
    +
    +- Glyph name: uni04C1	Contours detected: 389	Expected: 2
    +
    +- Glyph name: uni04C2	Contours detected: 282	Expected: 2
    +
    +- Glyph name: uni04CB	Contours detected: 152	Expected: 1 or 2
    +
    +- Glyph name: uni04CC	Contours detected: 131	Expected: 1 or 2
    +
    +- Glyph name: uni04CF	Contours detected: 137	Expected: 1
    +
    +- Glyph name: uni04D0	Contours detected: 195	Expected: 3
    +
    +- Glyph name: uni04D1	Contours detected: 209	Expected: 3
    +
    +- Glyph name: uni04D2	Contours detected: 208	Expected: 4
    +
    +- Glyph name: uni04D3	Contours detected: 204	Expected: 4
    +
    +- Glyph name: uni04D4	Contours detected: 275	Expected: 2
    +
    +- Glyph name: uni04D5	Contours detected: 193	Expected: 3
    +
    +- Glyph name: uni04D6	Contours detected: 204	Expected: 2
    +
    +- Glyph name: uni04D7	Contours detected: 186	Expected: 3
    +
    +- Glyph name: uni04D8	Contours detected: 145	Expected: 2
    +
    +- Glyph name: uni04D9	Contours detected: 149	Expected: 2
    +
    +- Glyph name: uni04DC	Contours detected: 402	Expected: 3
    +
    +- Glyph name: uni04DD	Contours detected: 277	Expected: 3
    +
    +- Glyph name: uni04DE	Contours detected: 269	Expected: 3
    +
    +- Glyph name: uni04DF	Contours detected: 206	Expected: 3
    +
    +- Glyph name: uni04E2	Contours detected: 288	Expected: 2
    +
    +- Glyph name: uni04E3	Contours detected: 171	Expected: 2
    +
    +- Glyph name: uni04E4	Contours detected: 304	Expected: 3
    +
    +- Glyph name: uni04E5	Contours detected: 187	Expected: 3
    +
    +- Glyph name: uni04E6	Contours detected: 236	Expected: 4
    +
    +- Glyph name: uni04E7	Contours detected: 248	Expected: 4
    +
    +- Glyph name: uni04E8	Contours detected: 187	Expected: 3
    +
    +- Glyph name: uni04E9	Contours detected: 101	Expected: 3
    +
    +- Glyph name: uni04EE	Contours detected: 207	Expected: 2
    +
    +- Glyph name: uni04EF	Contours detected: 149	Expected: 2
    +
    +- Glyph name: uni04F0	Contours detected: 223	Expected: 3
    +
    +- Glyph name: uni04F1	Contours detected: 165	Expected: 3
    +
    +- Glyph name: uni04F2	Contours detected: 242	Expected: 3
    +
    +- Glyph name: uni04F3	Contours detected: 184	Expected: 3
    +
    +- Glyph name: uni04F4	Contours detected: 261	Expected: 3
    +
    +- Glyph name: uni04F5	Contours detected: 231	Expected: 3
    +
    +- Glyph name: uni04F6	Contours detected: 177	Expected: 1 or 2
    +
    +- Glyph name: uni04F7	Contours detected: 122	Expected: 1 or 2
    +
    +- Glyph name: uni04F8	Contours detected: 268	Expected: 5
    +
    +- Glyph name: uni04F9	Contours detected: 232	Expected: 5
    +
    +- Glyph name: uni051A	Contours detected: 148	Expected: 2
    +
    +- Glyph name: uni051B	Contours detected: 142	Expected: 2
    +
    +- Glyph name: uni051C	Contours detected: 105	Expected: 1
    +
    +- Glyph name: uni051D	Contours detected: 175	Expected: 1
    +
    +- Glyph name: uni0524	Contours detected: 220	Expected: 1
    +
    +- Glyph name: uni0525	Contours detected: 181	Expected: 1
    +
    +- Glyph name: Wgrave	Contours detected: 156	Expected: 2
    +
    +- Glyph name: wgrave	Contours detected: 232	Expected: 2
    +
    +- Glyph name: Wacute	Contours detected: 153	Expected: 2
    +
    +- Glyph name: wacute	Contours detected: 214	Expected: 2
    +
    +- Glyph name: Wdieresis	Contours detected: 161	Expected: 3
    +
    +- Glyph name: wdieresis	Contours detected: 243	Expected: 3
    +
    +- Glyph name: uni1E9E	Contours detected: 130	Expected: 1
    +
    +- Glyph name: Ygrave	Contours detected: 164	Expected: 2
    +
    +- Glyph name: ygrave	Contours detected: 183	Expected: 2
    +
    +- Glyph name: endash	Contours detected: 72	Expected: 1
    +
    +- Glyph name: emdash	Contours detected: 113	Expected: 1
    +
    +- Glyph name: quoteleft	Contours detected: 34	Expected: 1
    +
    +- Glyph name: quoteright	Contours detected: 55	Expected: 1
    +
    +- Glyph name: quotesinglbase	Contours detected: 62	Expected: 1
    +
    +- Glyph name: quotedblleft	Contours detected: 79	Expected: 2
    +
    +- Glyph name: quotedblright	Contours detected: 94	Expected: 2
    +
    +- Glyph name: quotedblbase	Contours detected: 78	Expected: 2
    +
    +- Glyph name: dagger	Contours detected: 99	Expected: 1 or 2
    +
    +- Glyph name: daggerdbl	Contours detected: 131	Expected: 1 or 3
    +
    +- Glyph name: bullet	Contours detected: 48	Expected: 1
    +
    +- Glyph name: ellipsis	Contours detected: 116	Expected: 3
    +
    +- Glyph name: perthousand	Contours detected: 184	Expected: 6 or 7
    +
    +- Glyph name: guilsinglleft	Contours detected: 65	Expected: 1
    +
    +- Glyph name: guilsinglright	Contours detected: 66	Expected: 1
    +
    +- Glyph name: fraction	Contours detected: 72	Expected: 1
    +
    +- Glyph name: uni2070	Contours detected: 72	Expected: 2 or 3
    +
    +- Glyph name: uni2074	Contours detected: 46	Expected: 1 or 2
    +
    +- Glyph name: uni2075	Contours detected: 77	Expected: 1
    +
    +- Glyph name: uni2076	Contours detected: 42	Expected: 2
    +
    +- Glyph name: uni2077	Contours detected: 76	Expected: 1
    +
    +- Glyph name: uni2078	Contours detected: 74	Expected: 3
    +
    +- Glyph name: uni2079	Contours detected: 69	Expected: 2
    +
    +- Glyph name: uni207D	Contours detected: 47	Expected: 1
    +
    +- Glyph name: uni207E	Contours detected: 51	Expected: 1
    +
    +- Glyph name: uni2080	Contours detected: 72	Expected: 2 or 3
    +
    +- Glyph name: uni2081	Contours detected: 54	Expected: 1
    +
    +- Glyph name: uni2082	Contours detected: 66	Expected: 1
    +
    +- Glyph name: uni2083	Contours detected: 67	Expected: 1
    +
    +- Glyph name: uni2084	Contours detected: 46	Expected: 1 or 2
    +
    +- Glyph name: uni2085	Contours detected: 77	Expected: 1
    +
    +- Glyph name: uni2086	Contours detected: 42	Expected: 2
    +
    +- Glyph name: uni2087	Contours detected: 76	Expected: 1
    +
    +- Glyph name: uni2088	Contours detected: 74	Expected: 3
    +
    +- Glyph name: uni2089	Contours detected: 69	Expected: 2
    +
    +- Glyph name: uni208D	Contours detected: 47	Expected: 1
    +
    +- Glyph name: uni208E	Contours detected: 51	Expected: 1
    +
    +- Glyph name: uni20AA	Contours detected: 284	Expected: 2
    +
    +- Glyph name: Euro	Contours detected: 153	Expected: 1 or 2
    +
    +- Glyph name: uni20AE	Contours detected: 183	Expected: 1
    +
    +- Glyph name: uni20B4	Contours detected: 177	Expected: 1 or 2
    +
    +- Glyph name: uni20B8	Contours detected: 155	Expected: 2
    +
    +- Glyph name: uni20B9	Contours detected: 160	Expected: 1
    +
    +- Glyph name: uni20BD	Contours detected: 139	Expected: 2
    +
    +- Glyph name: uni2116	Contours detected: 281	Expected: 3 or 4
    +
    +- Glyph name: trademark	Contours detected: 92	Expected: 2
    +
    +- Glyph name: estimated	Contours detected: 160	Expected: 2
    +
    +- Glyph name: uni2153	Contours detected: 193	Expected: 3
    +
    +- Glyph name: uni2154	Contours detected: 205	Expected: 1 or 3
    +
    +- Glyph name: oneeighth	Contours detected: 200	Expected: 5
    +
    +- Glyph name: threeeighths	Contours detected: 213	Expected: 5
    +
    +- Glyph name: fiveeighths	Contours detected: 223	Expected: 5
    +
    +- Glyph name: seveneighths	Contours detected: 222	Expected: 5
    +
    +- Glyph name: partialdiff	Contours detected: 123	Expected: 2
    +
    +- Glyph name: uni2206	Contours detected: 117	Expected: 2
    +
    +- Glyph name: product	Contours detected: 183	Expected: 1
    +
    +- Glyph name: summation	Contours detected: 174	Expected: 1
    +
    +- Glyph name: minus	Contours detected: 79	Expected: 1
    +
    +- Glyph name: uni2215	Contours detected: 110	Expected: 1
    +
    +- Glyph name: radical	Contours detected: 109	Expected: 1
    +
    +- Glyph name: infinity	Contours detected: 124	Expected: 3
    +
    +- Glyph name: integral	Contours detected: 73	Expected: 1
    +
    +- Glyph name: approxequal	Contours detected: 97	Expected: 2
    +
    +- Glyph name: notequal	Contours detected: 115	Expected: 1
    +
    +- Glyph name: lessequal	Contours detected: 109	Expected: 2
    +
    +- Glyph name: greaterequal	Contours detected: 116	Expected: 2
    +
    +- Glyph name: lozenge	Contours detected: 114	Expected: 2
    +
    +- Glyph name: fi	Contours detected: 168	Expected: 1, 2 or 3
    +
    +- Glyph name: fl	Contours detected: 247	Expected: 1 or 2
    +
    +- Glyph name: A	Contours detected: 140	Expected: 2
    +
    +- Glyph name: AE	Contours detected: 275	Expected: 2
    +
    +- Glyph name: AEacute	Contours detected: 323	Expected: 3
    +
    +- Glyph name: Aacute	Contours detected: 188	Expected: 3
    +
    +- Glyph name: Abreve	Contours detected: 171	Expected: 3
    +
    +- Glyph name: Acircumflex	Contours detected: 182	Expected: 3
    +
    +- Glyph name: Adieresis	Contours detected: 196	Expected: 4
    +
    +- Glyph name: Agrave	Contours detected: 191	Expected: 3
    +
    +- Glyph name: Amacron	Contours detected: 201	Expected: 3
    +
    +- Glyph name: Aogonek	Contours detected: 122	Expected: 2 or 3
    +
    +- Glyph name: Aring	Contours detected: 170	Expected: 3 or 4
    +
    +- Glyph name: Atilde	Contours detected: 200	Expected: 3
    +
    +- Glyph name: B	Contours detected: 144	Expected: 2 or 3
    +
    +- Glyph name: C	Contours detected: 157	Expected: 1
    +
    +- Glyph name: Cacute	Contours detected: 205	Expected: 2
    +
    +- Glyph name: Ccaron	Contours detected: 202	Expected: 2
    +
    +- Glyph name: Ccedilla	Contours detected: 169	Expected: 1 or 2
    +
    +- Glyph name: Ccircumflex	Contours detected: 199	Expected: 2
    +
    +- Glyph name: Cdotaccent	Contours detected: 196	Expected: 2
    +
    +- Glyph name: D	Contours detected: 166	Expected: 2
    +
    +- Glyph name: Dcaron	Contours detected: 211	Expected: 3
    +
    +- Glyph name: Dcroat	Contours detected: 231	Expected: 2
    +
    +- Glyph name: E	Contours detected: 149	Expected: 1
    +
    +- Glyph name: Eacute	Contours detected: 197	Expected: 2
    +
    +- Glyph name: Ebreve	Contours detected: 180	Expected: 2
    +
    +- Glyph name: Ecaron	Contours detected: 194	Expected: 2
    +
    +- Glyph name: Ecircumflex	Contours detected: 191	Expected: 2
    +
    +- Glyph name: Edieresis	Contours detected: 205	Expected: 3
    +
    +- Glyph name: Edotaccent	Contours detected: 188	Expected: 2
    +
    +- Glyph name: Egrave	Contours detected: 200	Expected: 2
    +
    +- Glyph name: Emacron	Contours detected: 210	Expected: 2
    +
    +- Glyph name: Eng	Contours detected: 206	Expected: 1
    +
    +- Glyph name: Eogonek	Contours detected: 163	Expected: 1 or 2
    +
    +- Glyph name: Eth	Contours detected: 184	Expected: 2
    +
    +- Glyph name: Euro	Contours detected: 153	Expected: 1 or 2
    +
    +- Glyph name: F	Contours detected: 146	Expected: 1
    +
    +- Glyph name: G	Contours detected: 155	Expected: 1
    +
    +- Glyph name: Gbreve	Contours detected: 186	Expected: 2
    +
    +- Glyph name: Gcircumflex	Contours detected: 197	Expected: 2
    +
    +- Glyph name: Gdotaccent	Contours detected: 194	Expected: 2
    +
    +- Glyph name: H	Contours detected: 160	Expected: 1
    +
    +- Glyph name: Hbar	Contours detected: 195	Expected: 2
    +
    +- Glyph name: Hcircumflex	Contours detected: 202	Expected: 2
    +
    +- Glyph name: I	Contours detected: 119	Expected: 1
    +
    +- Glyph name: IJ	Contours detected: 207	Expected: 1 or 2
    +
    +- Glyph name: Iacute	Contours detected: 167	Expected: 2
    +
    +- Glyph name: Ibreve	Contours detected: 150	Expected: 2
    +
    +- Glyph name: Icircumflex	Contours detected: 161	Expected: 2
    +
    +- Glyph name: Idieresis	Contours detected: 175	Expected: 3
    +
    +- Glyph name: Idotaccent	Contours detected: 158	Expected: 2
    +
    +- Glyph name: Igrave	Contours detected: 170	Expected: 2
    +
    +- Glyph name: Imacron	Contours detected: 180	Expected: 2
    +
    +- Glyph name: Iogonek	Contours detected: 50	Expected: 1 or 2
    +
    +- Glyph name: Itilde	Contours detected: 179	Expected: 2
    +
    +- Glyph name: J	Contours detected: 174	Expected: 1
    +
    +- Glyph name: Jcircumflex	Contours detected: 216	Expected: 2
    +
    +- Glyph name: K	Contours detected: 108	Expected: 1 or 2
    +
    +- Glyph name: L	Contours detected: 134	Expected: 1
    +
    +- Glyph name: Lacute	Contours detected: 182	Expected: 2
    +
    +- Glyph name: Lcaron	Contours detected: 179	Expected: 2
    +
    +- Glyph name: Ldot	Contours detected: 156	Expected: 2
    +
    +- Glyph name: Lslash	Contours detected: 115	Expected: 1
    +
    +- Glyph name: M	Contours detected: 181	Expected: 1
    +
    +- Glyph name: N	Contours detected: 178	Expected: 1
    +
    +- Glyph name: Nacute	Contours detected: 226	Expected: 2
    +
    +- Glyph name: Ncaron	Contours detected: 223	Expected: 2
    +
    +- Glyph name: Ntilde	Contours detected: 238	Expected: 2
    +
    +- Glyph name: O	Contours detected: 168	Expected: 2
    +
    +- Glyph name: OE	Contours detected: 252	Expected: 2
    +
    +- Glyph name: Oacute	Contours detected: 216	Expected: 3
    +
    +- Glyph name: Ocircumflex	Contours detected: 210	Expected: 3
    +
    +- Glyph name: Odieresis	Contours detected: 224	Expected: 4
    +
    +- Glyph name: Ograve	Contours detected: 219	Expected: 3
    +
    +- Glyph name: Ohungarumlaut	Contours detected: 217	Expected: 4
    +
    +- Glyph name: Omacron	Contours detected: 229	Expected: 3
    +
    +- Glyph name: Oslash	Contours detected: 151	Expected: 2 or 3
    +
    +- Glyph name: Oslashacute	Contours detected: 199	Expected: 4
    +
    +- Glyph name: Otilde	Contours detected: 228	Expected: 3
    +
    +- Glyph name: P	Contours detected: 192	Expected: 1 or 2
    +
    +- Glyph name: Q	Contours detected: 148	Expected: 2
    +
    +- Glyph name: R	Contours detected: 190	Expected: 1 or 2
    +
    +- Glyph name: Racute	Contours detected: 238	Expected: 3
    +
    +- Glyph name: Rcaron	Contours detected: 235	Expected: 3
    +
    +- Glyph name: S	Contours detected: 190	Expected: 1
    +
    +- Glyph name: Sacute	Contours detected: 238	Expected: 2
    +
    +- Glyph name: Scaron	Contours detected: 235	Expected: 2
    +
    +- Glyph name: Scircumflex	Contours detected: 232	Expected: 2
    +
    +- Glyph name: T	Contours detected: 179	Expected: 1
    +
    +- Glyph name: Tbar	Contours detected: 132	Expected: 1
    +
    +- Glyph name: Tcaron	Contours detected: 224	Expected: 2
    +
    +- Glyph name: Thorn	Contours detected: 160	Expected: 1 or 2
    +
    +- Glyph name: U	Contours detected: 185	Expected: 1
    +
    +- Glyph name: Uacute	Contours detected: 233	Expected: 2
    +
    +- Glyph name: Ubreve	Contours detected: 216	Expected: 2
    +
    +- Glyph name: Ucircumflex	Contours detected: 227	Expected: 2
    +
    +- Glyph name: Udieresis	Contours detected: 241	Expected: 3
    +
    +- Glyph name: Ugrave	Contours detected: 236	Expected: 2
    +
    +- Glyph name: Uhungarumlaut	Contours detected: 234	Expected: 3
    +
    +- Glyph name: Umacron	Contours detected: 246	Expected: 2
    +
    +- Glyph name: Uogonek	Contours detected: 128	Expected: 1
    +
    +- Glyph name: Uring	Contours detected: 215	Expected: 3
    +
    +- Glyph name: Utilde	Contours detected: 245	Expected: 2
    +
    +- Glyph name: V	Contours detected: 172	Expected: 1
    +
    +- Glyph name: W	Contours detected: 105	Expected: 1 or 2
    +
    +- Glyph name: Wacute	Contours detected: 153	Expected: 2
    +
    +- Glyph name: Wcircumflex	Contours detected: 147	Expected: 2
    +
    +- Glyph name: Wdieresis	Contours detected: 161	Expected: 3
    +
    +- Glyph name: Wgrave	Contours detected: 156	Expected: 2
    +
    +- Glyph name: X	Contours detected: 152	Expected: 1
    +
    +- Glyph name: Y	Contours detected: 113	Expected: 1
    +
    +- Glyph name: Yacute	Contours detected: 161	Expected: 2
    +
    +- Glyph name: Ycircumflex	Contours detected: 155	Expected: 2
    +
    +- Glyph name: Ydieresis	Contours detected: 169	Expected: 3
    +
    +- Glyph name: Ygrave	Contours detected: 164	Expected: 2
    +
    +- Glyph name: Z	Contours detected: 190	Expected: 1
    +
    +- Glyph name: Zacute	Contours detected: 238	Expected: 2
    +
    +- Glyph name: Zcaron	Contours detected: 235	Expected: 2
    +
    +- Glyph name: Zdotaccent	Contours detected: 229	Expected: 2
    +
    +- Glyph name: a	Contours detected: 136	Expected: 2
    +
    +- Glyph name: aacute	Contours detected: 175	Expected: 3
    +
    +- Glyph name: abreve	Contours detected: 198	Expected: 3
    +
    +- Glyph name: acircumflex	Contours detected: 181	Expected: 3
    +
    +- Glyph name: acute	Contours detected: 39	Expected: 1
    +
    +- Glyph name: adieresis	Contours detected: 204	Expected: 4
    +
    +- Glyph name: ae	Contours detected: 193	Expected: 3
    +
    +- Glyph name: aeacute	Contours detected: 232	Expected: 4
    +
    +- Glyph name: agrave	Contours detected: 193	Expected: 3
    +
    +- Glyph name: amacron	Contours detected: 188	Expected: 3
    +
    +- Glyph name: ampersand	Contours detected: 120	Expected: 1, 2 or 3
    +
    +- Glyph name: aogonek	Contours detected: 146	Expected: 2
    +
    +- Glyph name: approxequal	Contours detected: 97	Expected: 2
    +
    +- Glyph name: aring	Contours detected: 164	Expected: 4
    +
    +- Glyph name: asciicircum	Contours detected: 43	Expected: 1
    +
    +- Glyph name: asciitilde	Contours detected: 79	Expected: 1
    +
    +- Glyph name: asterisk	Contours detected: 78	Expected: 1 or 4
    +
    +- Glyph name: at	Contours detected: 231	Expected: 2
    +
    +- Glyph name: atilde	Contours detected: 199	Expected: 3
    +
    +- Glyph name: b	Contours detected: 160	Expected: 2
    +
    +- Glyph name: backslash	Contours detected: 81	Expected: 1
    +
    +- Glyph name: bar	Contours detected: 159	Expected: 1
    +
    +- Glyph name: braceleft	Contours detected: 116	Expected: 1
    +
    +- Glyph name: braceright	Contours detected: 107	Expected: 1
    +
    +- Glyph name: bracketleft	Contours detected: 85	Expected: 1
    +
    +- Glyph name: bracketright	Contours detected: 215	Expected: 1
    +
    +- Glyph name: breve	Contours detected: 62	Expected: 1
    +
    +- Glyph name: brokenbar	Contours detected: 101	Expected: 2
    +
    +- Glyph name: bullet	Contours detected: 48	Expected: 1
    +
    +- Glyph name: c	Contours detected: 142	Expected: 1
    +
    +- Glyph name: cacute	Contours detected: 181	Expected: 2
    +
    +- Glyph name: caron	Contours detected: 74	Expected: 1
    +
    +- Glyph name: ccaron	Contours detected: 216	Expected: 2
    +
    +- Glyph name: ccedilla	Contours detected: 123	Expected: 1 or 2
    +
    +- Glyph name: ccircumflex	Contours detected: 187	Expected: 2
    +
    +- Glyph name: cdotaccent	Contours detected: 176	Expected: 2
    +
    +- Glyph name: cedilla	Contours detected: 31	Expected: 1
    +
    +- Glyph name: cent	Contours detected: 93	Expected: 1 or 2
    +
    +- Glyph name: circumflex	Contours detected: 45	Expected: 1
    +
    +- Glyph name: colon	Contours detected: 52	Expected: 2
    +
    +- Glyph name: comma	Contours detected: 35	Expected: 1
    +
    +- Glyph name: copyright	Contours detected: 150	Expected: 3
    +
    +- Glyph name: currency	Contours detected: 145	Expected: 2
    +
    +- Glyph name: d	Contours detected: 154	Expected: 2
    +
    +- Glyph name: dagger	Contours detected: 99	Expected: 1 or 2
    +
    +- Glyph name: daggerdbl	Contours detected: 131	Expected: 1 or 3
    +
    +- Glyph name: dcaron	Contours detected: 199	Expected: 3
    +
    +- Glyph name: dcroat	Contours detected: 148	Expected: 2
    +
    +- Glyph name: degree	Contours detected: 71	Expected: 2
    +
    +- Glyph name: dieresis	Contours detected: 68	Expected: 2
    +
    +- Glyph name: divide	Contours detected: 116	Expected: 3
    +
    +- Glyph name: dollar	Contours detected: 225	Expected: 1, 3 or 5
    +
    +- Glyph name: dotaccent	Contours detected: 34	Expected: 1
    +
    +- Glyph name: dotlessi	Contours detected: 73	Expected: 1
    +
    +- Glyph name: e	Contours detected: 113	Expected: 2
    +
    +- Glyph name: eacute	Contours detected: 152	Expected: 3
    +
    +- Glyph name: ebreve	Contours detected: 175	Expected: 3
    +
    +- Glyph name: ecaron	Contours detected: 187	Expected: 3
    +
    +- Glyph name: ecircumflex	Contours detected: 158	Expected: 3
    +
    +- Glyph name: edieresis	Contours detected: 181	Expected: 4
    +
    +- Glyph name: edotaccent	Contours detected: 147	Expected: 3
    +
    +- Glyph name: egrave	Contours detected: 170	Expected: 3
    +
    +- Glyph name: eight	Contours detected: 146	Expected: 3
    +
    +- Glyph name: ellipsis	Contours detected: 116	Expected: 3
    +
    +- Glyph name: emacron	Contours detected: 165	Expected: 3
    +
    +- Glyph name: emdash	Contours detected: 113	Expected: 1
    +
    +- Glyph name: endash	Contours detected: 72	Expected: 1
    +
    +- Glyph name: eng	Contours detected: 231	Expected: 1
    +
    +- Glyph name: eogonek	Contours detected: 161	Expected: 2
    +
    +- Glyph name: equal	Contours detected: 76	Expected: 2
    +
    +- Glyph name: estimated	Contours detected: 160	Expected: 2
    +
    +- Glyph name: eth	Contours detected: 151	Expected: 2
    +
    +- Glyph name: exclam	Contours detected: 102	Expected: 2
    +
    +- Glyph name: exclamdown	Contours detected: 97	Expected: 2
    +
    +- Glyph name: f	Contours detected: 135	Expected: 1
    +
    +- Glyph name: fi	Contours detected: 168	Expected: 3
    +
    +- Glyph name: five	Contours detected: 153	Expected: 1
    +
    +- Glyph name: fiveeighths	Contours detected: 223	Expected: 5
    +
    +- Glyph name: fl	Contours detected: 247	Expected: 2
    +
    +- Glyph name: four	Contours detected: 112	Expected: 1 or 2
    +
    +- Glyph name: fraction	Contours detected: 72	Expected: 1
    +
    +- Glyph name: g	Contours detected: 196	Expected: 2 or 3
    +
    +- Glyph name: gbreve	Contours detected: 258	Expected: 3 or 4
    +
    +- Glyph name: gcircumflex	Contours detected: 241	Expected: 3 or 4
    +
    +- Glyph name: gdotaccent	Contours detected: 230	Expected: 3 or 4
    +
    +- Glyph name: germandbls	Contours detected: 170	Expected: 1
    +
    +- Glyph name: grave	Contours detected: 57	Expected: 1
    +
    +- Glyph name: greater	Contours detected: 84	Expected: 1
    +
    +- Glyph name: greaterequal	Contours detected: 116	Expected: 2
    +
    +- Glyph name: guillemotleft	Contours detected: 118	Expected: 2
    +
    +- Glyph name: guillemotright	Contours detected: 122	Expected: 2
    +
    +- Glyph name: guilsinglleft	Contours detected: 65	Expected: 1
    +
    +- Glyph name: guilsinglright	Contours detected: 66	Expected: 1
    +
    +- Glyph name: h	Contours detected: 96	Expected: 1
    +
    +- Glyph name: hbar	Contours detected: 137	Expected: 1
    +
    +- Glyph name: hcircumflex	Contours detected: 141	Expected: 2
    +
    +- Glyph name: hungarumlaut	Contours detected: 87	Expected: 2
    +
    +- Glyph name: hyphen	Contours detected: 92	Expected: 1
    +
    +- Glyph name: i	Contours detected: 129	Expected: 2
    +
    +- Glyph name: iacute	Contours detected: 112	Expected: 2
    +
    +- Glyph name: ibreve	Contours detected: 135	Expected: 2
    +
    +- Glyph name: icircumflex	Contours detected: 118	Expected: 2
    +
    +- Glyph name: idieresis	Contours detected: 141	Expected: 3
    +
    +- Glyph name: igrave	Contours detected: 130	Expected: 2
    +
    +- Glyph name: ij	Contours detected: 316	Expected: 3 or 4
    +
    +- Glyph name: imacron	Contours detected: 125	Expected: 2
    +
    +- Glyph name: infinity	Contours detected: 124	Expected: 3
    +
    +- Glyph name: integral	Contours detected: 73	Expected: 1
    +
    +- Glyph name: iogonek	Contours detected: 129	Expected: 2 or 3
    +
    +- Glyph name: itilde	Contours detected: 136	Expected: 2
    +
    +- Glyph name: j	Contours detected: 187	Expected: 2
    +
    +- Glyph name: jcircumflex	Contours detected: 203	Expected: 2
    +
    +- Glyph name: k	Contours detected: 106	Expected: 1 or 2
    +
    +- Glyph name: kgreenlandic	Contours detected: 125	Expected: 1 or 2
    +
    +- Glyph name: l	Contours detected: 137	Expected: 1
    +
    +- Glyph name: lacute	Contours detected: 176	Expected: 2
    +
    +- Glyph name: lcaron	Contours detected: 182	Expected: 2
    +
    +- Glyph name: ldot	Contours detected: 179	Expected: 2
    +
    +- Glyph name: less	Contours detected: 107	Expected: 1
    +
    +- Glyph name: lessequal	Contours detected: 109	Expected: 2
    +
    +- Glyph name: logicalnot	Contours detected: 86	Expected: 1
    +
    +- Glyph name: longs	Contours detected: 134	Expected: 1
    +
    +- Glyph name: lozenge	Contours detected: 114	Expected: 2
    +
    +- Glyph name: lslash	Contours detected: 103	Expected: 1
    +
    +- Glyph name: m	Contours detected: 184	Expected: 1
    +
    +- Glyph name: macron	Contours detected: 52	Expected: 1
    +
    +- Glyph name: minus	Contours detected: 79	Expected: 1
    +
    +- Glyph name: multiply	Contours detected: 112	Expected: 1
    +
    +- Glyph name: n	Contours detected: 162	Expected: 1
    +
    +- Glyph name: nacute	Contours detected: 201	Expected: 2
    +
    +- Glyph name: napostrophe	Contours detected: 179	Expected: 2
    +
    +- Glyph name: ncaron	Contours detected: 236	Expected: 2
    +
    +- Glyph name: nine	Contours detected: 156	Expected: 1 or 2
    +
    +- Glyph name: notequal	Contours detected: 115	Expected: 1
    +
    +- Glyph name: ntilde	Contours detected: 225	Expected: 2
    +
    +- Glyph name: numbersign	Contours detected: 154	Expected: 2
    +
    +- Glyph name: o	Contours detected: 180	Expected: 2
    +
    +- Glyph name: oacute	Contours detected: 219	Expected: 3
    +
    +- Glyph name: ocircumflex	Contours detected: 225	Expected: 3
    +
    +- Glyph name: odieresis	Contours detected: 248	Expected: 4
    +
    +- Glyph name: oe	Contours detected: 156	Expected: 3
    +
    +- Glyph name: ogonek	Contours detected: 46	Expected: 1
    +
    +- Glyph name: ograve	Contours detected: 237	Expected: 3
    +
    +- Glyph name: ohungarumlaut	Contours detected: 267	Expected: 4
    +
    +- Glyph name: omacron	Contours detected: 232	Expected: 3
    +
    +- Glyph name: one	Contours detected: 156	Expected: 1
    +
    +- Glyph name: oneeighth	Contours detected: 200	Expected: 5
    +
    +- Glyph name: onehalf	Contours detected: 192	Expected: 3
    +
    +- Glyph name: onequarter	Contours detected: 172	Expected: 3 or 4
    +
    +- Glyph name: ordfeminine	Contours detected: 36	Expected: 2 or 3
    +
    +- Glyph name: ordmasculine	Contours detected: 71	Expected: 2 or 3
    +
    +- Glyph name: oslash	Contours detected: 177	Expected: 3
    +
    +- Glyph name: oslashacute	Contours detected: 216	Expected: 4
    +
    +- Glyph name: otilde	Contours detected: 243	Expected: 3
    +
    +- Glyph name: p	Contours detected: 133	Expected: 2
    +
    +- Glyph name: paragraph	Contours detected: 185	Expected: 1, 2 or 3
    +
    +- Glyph name: parenleft	Contours detected: 107	Expected: 1
    +
    +- Glyph name: parenright	Contours detected: 123	Expected: 1
    +
    +- Glyph name: partialdiff	Contours detected: 123	Expected: 2
    +
    +- Glyph name: percent	Contours detected: 169	Expected: 5
    +
    +- Glyph name: period	Contours detected: 21	Expected: 1
    +
    +- Glyph name: periodcentered	Contours detected: 39	Expected: 1
    +
    +- Glyph name: perthousand	Contours detected: 184	Expected: 6 or 7
    +
    +- Glyph name: plus	Contours detected: 88	Expected: 1
    +
    +- Glyph name: plusminus	Contours detected: 151	Expected: 1 or 2
    +
    +- Glyph name: product	Contours detected: 183	Expected: 1
    +
    +- Glyph name: q	Contours detected: 142	Expected: 2
    +
    +- Glyph name: question	Contours detected: 146	Expected: 2
    +
    +- Glyph name: questiondown	Contours detected: 120	Expected: 2
    +
    +- Glyph name: quotedbl	Contours detected: 100	Expected: 2
    +
    +- Glyph name: quotedblbase	Contours detected: 78	Expected: 2
    +
    +- Glyph name: quotedblleft	Contours detected: 79	Expected: 2
    +
    +- Glyph name: quotedblright	Contours detected: 94	Expected: 2
    +
    +- Glyph name: quoteleft	Contours detected: 34	Expected: 1
    +
    +- Glyph name: quoteright	Contours detected: 55	Expected: 1
    +
    +- Glyph name: quotesinglbase	Contours detected: 62	Expected: 1
    +
    +- Glyph name: quotesingle	Contours detected: 48	Expected: 1
    +
    +- Glyph name: r	Contours detected: 120	Expected: 1
    +
    +- Glyph name: racute	Contours detected: 159	Expected: 2
    +
    +- Glyph name: radical	Contours detected: 109	Expected: 1
    +
    +- Glyph name: rcaron	Contours detected: 194	Expected: 2
    +
    +- Glyph name: registered	Contours detected: 153	Expected: 3 or 4
    +
    +- Glyph name: ring	Contours detected: 28	Expected: 2
    +
    +- Glyph name: s	Contours detected: 105	Expected: 1
    +
    +- Glyph name: sacute	Contours detected: 144	Expected: 2
    +
    +- Glyph name: scaron	Contours detected: 179	Expected: 2
    +
    +- Glyph name: scircumflex	Contours detected: 150	Expected: 2
    +
    +- Glyph name: section	Contours detected: 152	Expected: 2
    +
    +- Glyph name: semicolon	Contours detected: 69	Expected: 2
    +
    +- Glyph name: seven	Contours detected: 144	Expected: 1
    +
    +- Glyph name: seveneighths	Contours detected: 222	Expected: 5
    +
    +- Glyph name: six	Contours detected: 128	Expected: 1 or 2
    +
    +- Glyph name: slash	Contours detected: 110	Expected: 1
    +
    +- Glyph name: sterling	Contours detected: 150	Expected: 1 or 2
    +
    +- Glyph name: summation	Contours detected: 174	Expected: 1
    +
    +- Glyph name: t	Contours detected: 131	Expected: 1
    +
    +- Glyph name: tbar	Contours detected: 127	Expected: 1
    +
    +- Glyph name: tcaron	Contours detected: 176	Expected: 2
    +
    +- Glyph name: thorn	Contours detected: 130	Expected: 2
    +
    +- Glyph name: three	Contours detected: 226	Expected: 1
    +
    +- Glyph name: threeeighths	Contours detected: 213	Expected: 5
    +
    +- Glyph name: threequarters	Contours detected: 185	Expected: 3 or 4
    +
    +- Glyph name: tilde	Contours detected: 63	Expected: 1
    +
    +- Glyph name: trademark	Contours detected: 92	Expected: 2
    +
    +- Glyph name: two	Contours detected: 183	Expected: 1
    +
    +- Glyph name: u	Contours detected: 110	Expected: 1
    +
    +- Glyph name: uacute	Contours detected: 149	Expected: 2
    +
    +- Glyph name: ubreve	Contours detected: 172	Expected: 2
    +
    +- Glyph name: ucircumflex	Contours detected: 155	Expected: 2
    +
    +- Glyph name: udieresis	Contours detected: 178	Expected: 3
    +
    +- Glyph name: ugrave	Contours detected: 167	Expected: 2
    +
    +- Glyph name: uhungarumlaut	Contours detected: 197	Expected: 3
    +
    +- Glyph name: umacron	Contours detected: 162	Expected: 2
    +
    +- Glyph name: underscore	Contours detected: 84	Expected: 1
    +
    +- Glyph name: uni00B5	Contours detected: 153	Expected: 1
    +
    +- Glyph name: uni0122	Contours detected: 182	Expected: 2
    +
    +- Glyph name: uni0123	Contours detected: 236	Expected: 3 or 4
    +
    +- Glyph name: uni0136	Contours detected: 135	Expected: 2 or 3
    +
    +- Glyph name: uni0137	Contours detected: 135	Expected: 2 or 3
    +
    +- Glyph name: uni013B	Contours detected: 161	Expected: 2
    +
    +- Glyph name: uni013C	Contours detected: 166	Expected: 2
    +
    +- Glyph name: uni0145	Contours detected: 205	Expected: 2
    +
    +- Glyph name: uni0146	Contours detected: 191	Expected: 2
    +
    +- Glyph name: uni0156	Contours detected: 217	Expected: 3
    +
    +- Glyph name: uni0157	Contours detected: 149	Expected: 2
    +
    +- Glyph name: uni0218	Contours detected: 217	Expected: 2
    +
    +- Glyph name: uni0219	Contours detected: 134	Expected: 2
    +
    +- Glyph name: uni021A	Contours detected: 206	Expected: 2
    +
    +- Glyph name: uni021B	Contours detected: 160	Expected: 2
    +
    +- Glyph name: uni0237	Contours detected: 158	Expected: 1
    +
    +- Glyph name: uni02BC	Contours detected: 29	Expected: 1
    +
    +- Glyph name: uni0302	Contours detected: 45	Expected: 1
    +
    +- Glyph name: uni0304	Contours detected: 52	Expected: 1
    +
    +- Glyph name: uni0306	Contours detected: 62	Expected: 1
    +
    +- Glyph name: uni0307	Contours detected: 34	Expected: 1
    +
    +- Glyph name: uni0308	Contours detected: 68	Expected: 2
    +
    +- Glyph name: uni030A	Contours detected: 28	Expected: 2
    +
    +- Glyph name: uni030B	Contours detected: 87	Expected: 2
    +
    +- Glyph name: uni030C	Contours detected: 74	Expected: 1
    +
    +- Glyph name: uni0312	Contours detected: 40	Expected: 1
    +
    +- Glyph name: uni0326	Contours detected: 29	Expected: 1
    +
    +- Glyph name: uni0327	Contours detected: 31	Expected: 1
    +
    +- Glyph name: uni0328	Contours detected: 46	Expected: 1
    +
    +- Glyph name: uni0335	Contours detected: 60	Expected: 1
    +
    +- Glyph name: uni0337	Contours detected: 50	Expected: 1
    +
    +- Glyph name: uni0338	Contours detected: 67	Expected: 1
    +
    +- Glyph name: uni0400	Contours detected: 200	Expected: 2
    +
    +- Glyph name: uni0401	Contours detected: 217	Expected: 3
    +
    +- Glyph name: uni0402	Contours detected: 168	Expected: 1
    +
    +- Glyph name: uni0403	Contours detected: 169	Expected: 2
    +
    +- Glyph name: uni0404	Contours detected: 124	Expected: 1
    +
    +- Glyph name: uni0405	Contours detected: 190	Expected: 1
    +
    +- Glyph name: uni0406	Contours detected: 119	Expected: 1
    +
    +- Glyph name: uni0407	Contours detected: 187	Expected: 3
    +
    +- Glyph name: uni0408	Contours detected: 174	Expected: 1
    +
    +- Glyph name: uni0409	Contours detected: 196	Expected: 2
    +
    +- Glyph name: uni040A	Contours detected: 258	Expected: 2
    +
    +- Glyph name: uni040B	Contours detected: 182	Expected: 1
    +
    +- Glyph name: uni040C	Contours detected: 203	Expected: 2
    +
    +- Glyph name: uni040D	Contours detected: 287	Expected: 2
    +
    +- Glyph name: uni040E	Contours detected: 210	Expected: 2
    +
    +- Glyph name: uni040F	Contours detected: 201	Expected: 1
    +
    +- Glyph name: uni0410	Contours detected: 140	Expected: 2
    +
    +- Glyph name: uni0411	Contours detected: 137	Expected: 2
    +
    +- Glyph name: uni0412	Contours detected: 144	Expected: 3
    +
    +- Glyph name: uni0413	Contours detected: 121	Expected: 1
    +
    +- Glyph name: uni0414	Contours detected: 253	Expected: 2
    +
    +- Glyph name: uni0415	Contours detected: 149	Expected: 1
    +
    +- Glyph name: uni0416	Contours detected: 334	Expected: 1
    +
    +- Glyph name: uni0417	Contours detected: 201	Expected: 1
    +
    +- Glyph name: uni0418	Contours detected: 236	Expected: 1
    +
    +- Glyph name: uni0419	Contours detected: 291	Expected: 2
    +
    +- Glyph name: uni041A	Contours detected: 155	Expected: 1
    +
    +- Glyph name: uni041B	Contours detected: 228	Expected: 1
    +
    +- Glyph name: uni041C	Contours detected: 181	Expected: 1
    +
    +- Glyph name: uni041D	Contours detected: 160	Expected: 1
    +
    +- Glyph name: uni041E	Contours detected: 168	Expected: 2
    +
    +- Glyph name: uni041F	Contours detected: 187	Expected: 1
    +
    +- Glyph name: uni0420	Contours detected: 192	Expected: 1 or 2
    +
    +- Glyph name: uni0421	Contours detected: 157	Expected: 1
    +
    +- Glyph name: uni0422	Contours detected: 179	Expected: 1
    +
    +- Glyph name: uni0423	Contours detected: 155	Expected: 1
    +
    +- Glyph name: uni0424	Contours detected: 226	Expected: 3
    +
    +- Glyph name: uni0425	Contours detected: 152	Expected: 1
    +
    +- Glyph name: uni0426	Contours detected: 179	Expected: 1
    +
    +- Glyph name: uni0427	Contours detected: 193	Expected: 1
    +
    +- Glyph name: uni0428	Contours detected: 238	Expected: 1
    +
    +- Glyph name: uni0429	Contours detected: 212	Expected: 1
    +
    +- Glyph name: uni042A	Contours detected: 151	Expected: 2
    +
    +- Glyph name: uni042B	Contours detected: 200	Expected: 3
    +
    +- Glyph name: uni042C	Contours detected: 102	Expected: 2
    +
    +- Glyph name: uni042D	Contours detected: 199	Expected: 1
    +
    +- Glyph name: uni042E	Contours detected: 177	Expected: 2
    +
    +- Glyph name: uni042F	Contours detected: 156	Expected: 2
    +
    +- Glyph name: uni0430	Contours detected: 136	Expected: 2
    +
    +- Glyph name: uni0431	Contours detected: 187	Expected: 2
    +
    +- Glyph name: uni0432	Contours detected: 122	Expected: 3
    +
    +- Glyph name: uni0433	Contours detected: 106	Expected: 1
    +
    +- Glyph name: uni0434	Contours detected: 173	Expected: 2
    +
    +- Glyph name: uni0435	Contours detected: 113	Expected: 2
    +
    +- Glyph name: uni0436	Contours detected: 209	Expected: 1
    +
    +- Glyph name: uni0437	Contours detected: 138	Expected: 1
    +
    +- Glyph name: uni0438	Contours detected: 119	Expected: 1
    +
    +- Glyph name: uni0439	Contours detected: 192	Expected: 2
    +
    +- Glyph name: uni043A	Contours detected: 145	Expected: 1
    +
    +- Glyph name: uni043B	Contours detected: 143	Expected: 1
    +
    +- Glyph name: uni043C	Contours detected: 149	Expected: 1
    +
    +- Glyph name: uni043D	Contours detected: 141	Expected: 1
    +
    +- Glyph name: uni043E	Contours detected: 180	Expected: 2
    +
    +- Glyph name: uni043F	Contours detected: 160	Expected: 1
    +
    +- Glyph name: uni0440	Contours detected: 133	Expected: 2
    +
    +- Glyph name: uni0441	Contours detected: 142	Expected: 1
    +
    +- Glyph name: uni0442	Contours detected: 139	Expected: 1
    +
    +- Glyph name: uni0443	Contours detected: 97	Expected: 1
    +
    +- Glyph name: uni0444	Contours detected: 175	Expected: 3
    +
    +- Glyph name: uni0445	Contours detected: 132	Expected: 1
    +
    +- Glyph name: uni0446	Contours detected: 149	Expected: 1
    +
    +- Glyph name: uni0447	Contours detected: 163	Expected: 1
    +
    +- Glyph name: uni0448	Contours detected: 195	Expected: 1
    +
    +- Glyph name: uni0449	Contours detected: 169	Expected: 1
    +
    +- Glyph name: uni044A	Contours detected: 170	Expected: 2
    +
    +- Glyph name: uni044B	Contours detected: 164	Expected: 3
    +
    +- Glyph name: uni044C	Contours detected: 69	Expected: 2
    +
    +- Glyph name: uni044D	Contours detected: 127	Expected: 1
    +
    +- Glyph name: uni044E	Contours detected: 175	Expected: 2
    +
    +- Glyph name: uni044F	Contours detected: 119	Expected: 2
    +
    +- Glyph name: uni0450	Contours detected: 170	Expected: 3
    +
    +- Glyph name: uni0451	Contours detected: 181	Expected: 4
    +
    +- Glyph name: uni0452	Contours detected: 118	Expected: 1
    +
    +- Glyph name: uni0453	Contours detected: 145	Expected: 2
    +
    +- Glyph name: uni0454	Contours detected: 133	Expected: 1
    +
    +- Glyph name: uni0455	Contours detected: 105	Expected: 1
    +
    +- Glyph name: uni0456	Contours detected: 129	Expected: 2
    +
    +- Glyph name: uni0457	Contours detected: 141	Expected: 3
    +
    +- Glyph name: uni0458	Contours detected: 187	Expected: 2
    +
    +- Glyph name: uni0459	Contours detected: 193	Expected: 2
    +
    +- Glyph name: uni045A	Contours detected: 159	Expected: 2
    +
    +- Glyph name: uni045B	Contours detected: 150	Expected: 1
    +
    +- Glyph name: uni045C	Contours detected: 184	Expected: 2
    +
    +- Glyph name: uni045D	Contours detected: 176	Expected: 2
    +
    +- Glyph name: uni045E	Contours detected: 170	Expected: 2
    +
    +- Glyph name: uni045F	Contours detected: 155	Expected: 1 or 2
    +
    +- Glyph name: uni0462	Contours detected: 154	Expected: 2
    +
    +- Glyph name: uni0463	Contours detected: 131	Expected: 2
    +
    +- Glyph name: uni046A	Contours detected: 279	Expected: 2
    +
    +- Glyph name: uni046B	Contours detected: 233	Expected: 2
    +
    +- Glyph name: uni0472	Contours detected: 178	Expected: 3
    +
    +- Glyph name: uni0473	Contours detected: 101	Expected: 3
    +
    +- Glyph name: uni0474	Contours detected: 135	Expected: 1
    +
    +- Glyph name: uni0475	Contours detected: 123	Expected: 1
    +
    +- Glyph name: uni0490	Contours detected: 121	Expected: 1
    +
    +- Glyph name: uni0491	Contours detected: 92	Expected: 1
    +
    +- Glyph name: uni0492	Contours detected: 177	Expected: 1
    +
    +- Glyph name: uni0493	Contours detected: 110	Expected: 1
    +
    +- Glyph name: uni0494	Contours detected: 93	Expected: 1
    +
    +- Glyph name: uni0495	Contours detected: 178	Expected: 1
    +
    +- Glyph name: uni0496	Contours detected: 301	Expected: 1 or 2
    +
    +- Glyph name: uni0497	Contours detected: 202	Expected: 1 or 2
    +
    +- Glyph name: uni0498	Contours detected: 182	Expected: 1 or 2
    +
    +- Glyph name: uni0499	Contours detected: 133	Expected: 1 or 2
    +
    +- Glyph name: uni049A	Contours detected: 174	Expected: 1 or 2
    +
    +- Glyph name: uni049B	Contours detected: 147	Expected: 1 or 2
    +
    +- Glyph name: uni049C	Contours detected: 166	Expected: 1
    +
    +- Glyph name: uni049D	Contours detected: 130	Expected: 1
    +
    +- Glyph name: uni04A0	Contours detected: 175	Expected: 1
    +
    +- Glyph name: uni04A1	Contours detected: 169	Expected: 1
    +
    +- Glyph name: uni04A2	Contours detected: 149	Expected: 1 or 2
    +
    +- Glyph name: uni04A3	Contours detected: 148	Expected: 1 or 2
    +
    +- Glyph name: uni04A4	Contours detected: 223	Expected: 1
    +
    +- Glyph name: uni04A5	Contours detected: 125	Expected: 1
    +
    +- Glyph name: uni04AA	Contours detected: 136	Expected: 1 or 2
    +
    +- Glyph name: uni04AB	Contours detected: 117	Expected: 1 or 2
    +
    +- Glyph name: uni04B6	Contours detected: 173	Expected: 1 or 2
    +
    +- Glyph name: uni04B7	Contours detected: 174	Expected: 1 or 2
    +
    +- Glyph name: uni04B8	Contours detected: 205	Expected: 1
    +
    +- Glyph name: uni04B9	Contours detected: 169	Expected: 1
    +
    +- Glyph name: uni04BA	Contours detected: 155	Expected: 1
    +
    +- Glyph name: uni04BB	Contours detected: 96	Expected: 1
    +
    +- Glyph name: uni04C0	Contours detected: 119	Expected: 1
    +
    +- Glyph name: uni04C1	Contours detected: 389	Expected: 2
    +
    +- Glyph name: uni04C2	Contours detected: 282	Expected: 2
    +
    +- Glyph name: uni04CB	Contours detected: 152	Expected: 1 or 2
    +
    +- Glyph name: uni04CC	Contours detected: 131	Expected: 1 or 2
    +
    +- Glyph name: uni04CF	Contours detected: 137	Expected: 1
    +
    +- Glyph name: uni04D0	Contours detected: 195	Expected: 3
    +
    +- Glyph name: uni04D1	Contours detected: 209	Expected: 3
    +
    +- Glyph name: uni04D2	Contours detected: 208	Expected: 4
    +
    +- Glyph name: uni04D3	Contours detected: 204	Expected: 4
    +
    +- Glyph name: uni04D4	Contours detected: 275	Expected: 2
    +
    +- Glyph name: uni04D5	Contours detected: 193	Expected: 3
    +
    +- Glyph name: uni04D6	Contours detected: 204	Expected: 2
    +
    +- Glyph name: uni04D7	Contours detected: 186	Expected: 3
    +
    +- Glyph name: uni04D8	Contours detected: 145	Expected: 2
    +
    +- Glyph name: uni04D9	Contours detected: 149	Expected: 2
    +
    +- Glyph name: uni04DC	Contours detected: 402	Expected: 3
    +
    +- Glyph name: uni04DD	Contours detected: 277	Expected: 3
    +
    +- Glyph name: uni04DE	Contours detected: 269	Expected: 3
    +
    +- Glyph name: uni04DF	Contours detected: 206	Expected: 3
    +
    +- Glyph name: uni04E2	Contours detected: 288	Expected: 2
    +
    +- Glyph name: uni04E3	Contours detected: 171	Expected: 2
    +
    +- Glyph name: uni04E4	Contours detected: 304	Expected: 3
    +
    +- Glyph name: uni04E5	Contours detected: 187	Expected: 3
    +
    +- Glyph name: uni04E6	Contours detected: 236	Expected: 4
    +
    +- Glyph name: uni04E7	Contours detected: 248	Expected: 4
    +
    +- Glyph name: uni04E8	Contours detected: 187	Expected: 3
    +
    +- Glyph name: uni04E9	Contours detected: 101	Expected: 3
    +
    +- Glyph name: uni04EE	Contours detected: 207	Expected: 2
    +
    +- Glyph name: uni04EF	Contours detected: 149	Expected: 2
    +
    +- Glyph name: uni04F0	Contours detected: 223	Expected: 3
    +
    +- Glyph name: uni04F1	Contours detected: 165	Expected: 3
    +
    +- Glyph name: uni04F2	Contours detected: 242	Expected: 3
    +
    +- Glyph name: uni04F3	Contours detected: 184	Expected: 3
    +
    +- Glyph name: uni04F4	Contours detected: 261	Expected: 3
    +
    +- Glyph name: uni04F5	Contours detected: 231	Expected: 3
    +
    +- Glyph name: uni04F6	Contours detected: 177	Expected: 1 or 2
    +
    +- Glyph name: uni04F7	Contours detected: 122	Expected: 1 or 2
    +
    +- Glyph name: uni04F8	Contours detected: 268	Expected: 5
    +
    +- Glyph name: uni04F9	Contours detected: 232	Expected: 5
    +
    +- Glyph name: uni051A	Contours detected: 148	Expected: 2
    +
    +- Glyph name: uni051B	Contours detected: 142	Expected: 2
    +
    +- Glyph name: uni051C	Contours detected: 105	Expected: 1
    +
    +- Glyph name: uni051D	Contours detected: 175	Expected: 1
    +
    +- Glyph name: uni0524	Contours detected: 220	Expected: 1
    +
    +- Glyph name: uni0525	Contours detected: 181	Expected: 1
    +
    +- Glyph name: uni1E9E	Contours detected: 130	Expected: 1
    +
    +- Glyph name: uni20AA	Contours detected: 284	Expected: 2
    +
    +- Glyph name: uni20AE	Contours detected: 183	Expected: 1
    +
    +- Glyph name: uni20B4	Contours detected: 177	Expected: 1 or 2
    +
    +- Glyph name: uni20B8	Contours detected: 155	Expected: 2
    +
    +- Glyph name: uni20B9	Contours detected: 160	Expected: 1
    +
    +- Glyph name: uni20BD	Contours detected: 139	Expected: 2
    +
    +- Glyph name: uni2116	Contours detected: 281	Expected: 3 or 4
    +
    +- Glyph name: uni2206	Contours detected: 117	Expected: 2
    +
    +- Glyph name: uni2215	Contours detected: 110	Expected: 1
    +
    +- Glyph name: uogonek	Contours detected: 134	Expected: 1
    +
    +- Glyph name: uring	Contours detected: 138	Expected: 3
    +
    +- Glyph name: utilde	Contours detected: 173	Expected: 2
    +
    +- Glyph name: v	Contours detected: 118	Expected: 1
    +
    +- Glyph name: w	Contours detected: 175	Expected: 1
    +
    +- Glyph name: wacute	Contours detected: 214	Expected: 2
    +
    +- Glyph name: wcircumflex	Contours detected: 220	Expected: 2
    +
    +- Glyph name: wdieresis	Contours detected: 243	Expected: 3
    +
    +- Glyph name: wgrave	Contours detected: 232	Expected: 2
    +
    +- Glyph name: x	Contours detected: 132	Expected: 1
    +
    +- Glyph name: y	Contours detected: 126	Expected: 1
    +
    +- Glyph name: yacute	Contours detected: 165	Expected: 2
    +
    +- Glyph name: ycircumflex	Contours detected: 171	Expected: 2
    +
    +- Glyph name: ydieresis	Contours detected: 194	Expected: 3
    +
    +- Glyph name: yen	Contours detected: 173	Expected: 1 or 2
    +
    +- Glyph name: ygrave	Contours detected: 183	Expected: 2
    +
    +- Glyph name: z	Contours detected: 144	Expected: 1
    +
    +- Glyph name: zacute	Contours detected: 183	Expected: 2
    +
    +- Glyph name: zcaron	Contours detected: 218	Expected: 2
    +
    +- Glyph name: zdotaccent	Contours detected: 178	Expected: 2
    +
    +- Glyph name: zero	Contours detected: 178	Expected: 2 or 3
    +
    +

    [code: contour-count]

    +
+

Check math signs have the same width.

+
Check ID: com.google.fonts/check/math_signs_width
+ +
⚠️ RubikLines-Regular.ttf
  • ⚠️ WARN

    The most common width is 538 among a set of 2 math glyphs. +The following math glyphs have a different width, though:

    +

    Width = 594: +plus

    +

    Width = 563: +equal

    +

    Width = 564: +logicalnot

    +

    Width = 576: +plusminus

    +

    Width = 639: +multiply

    +

    Width = 517: +divide

    +

    Width = 642: +minus

    +

    Width = 551: +approxequal, notequal

    +

    Width = 556: +lessequal, greaterequal +[code: width-outliers]

    +
+

Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)

+
Check ID: com.google.fonts/check/alt_caron
+ +
⚠️ RubikLines-Regular.ttf
  • ⚠️ WARN

    Lcaron is decomposed and therefore could not be checked. Please check manually. [code: decomposed-outline]

    +
  • ⚠️ WARN

    dcaron is decomposed and therefore could not be checked. Please check manually. [code: decomposed-outline]

    +
  • ⚠️ WARN

    lcaron is decomposed and therefore could not be checked. Please check manually. [code: decomposed-outline]

    +
  • ⚠️ WARN

    tcaron is decomposed and therefore could not be checked. Please check manually. [code: decomposed-outline]

    +
+

Section: Shaping Checks

+⚠️⚠️⏩⏩⏩ +

Ensure dotted circle glyph is present and can attach marks.

+
Check ID: com.google.fonts/check/dotted_circle
+ +
⚠️ RubikLines-Regular.ttf
  • ⚠️ WARN

    No dotted circle glyph present [code: missing-dotted-circle]

    +
+

Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.

+
Check ID: com.google.fonts/check/soft_dotted
+ +
⚠️ RubikLines-Regular.ttf
  • ⚠️ WARN

    The dot of soft dotted characters used in orthographies must disappear in the following strings: į̀ į́ į̂ į̃ į̄ į̌ і́

    +

    The dot of soft dotted characters should disappear in other cases, for example: i̦̒ j̦̒ į̆ į̇ į̈ į̊ į̋ į̒ į̦̒ į̧̒ į̨̒ į̵̀ į̵́ į̵̂ į̵̃ į̵̄ į̵̆ į̵̇ į̵̈ į̵̊

    +

    Your font fully covers the following languages that require the soft-dotted feature: Belarusian (Cyrl, 10,064,517 speakers), Lithuanian (Latn, 2,357,094 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Dutch (Latn, 31,709,104 speakers).

    +

    Your font does not cover the following languages that require the soft-dotted feature: Aghem (Latn, 38,843 speakers), Kom (Latn, 360,685 speakers), Ebira (Latn, 2,200,000 speakers), Koonzime (Latn, 40,000 speakers), Ejagham (Latn, 120,000 speakers), Gulay (Latn, 250,478 speakers), Lugbara (Latn, 2,200,000 speakers), Dan (Latn, 1,099,244 speakers), Basaa (Latn, 332,940 speakers), Nateni (Latn, 100,000 speakers), Mango (Latn, 77,000 speakers), Navajo (Latn, 166,319 speakers), Ma’di (Latn, 584,000 speakers), Avokaya (Latn, 100,000 speakers), Igbo (Latn, 27,823,640 speakers), Sar (Latn, 500,000 speakers). [code: soft-dotted]

    +
+
+ + \ No newline at end of file diff --git a/docs/fontbakery-reports/rubiklines-report.json b/docs/fontbakery-reports/rubiklines-report.json new file mode 100644 index 0000000..0f6cbcc --- /dev/null +++ b/docs/fontbakery-reports/rubiklines-report.json @@ -0,0 +1 @@ +{"result": {"FAIL": 4, "INFO": 9, "PASS": 158, "SKIP": 64, "WARN": 12}, "sections": [{"checks": [{"description": "Fonts have equal codepoint coverage", "experimental": "Since 2023/Oct/13", "key": ["", "", []], "logs": [{"message": "All font files in this family have an equivalent encoded glyphset.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Ensure that all variable font files have the same set of axes and axis ranges.", "key": ["", "", []], "logs": [{"message": "Unfulfilled Conditions: VFs", "status": "SKIP", "traceback": null}], "rationale": "\n In order to facilitate the construction of intuitive and friendly user\n interfaces, all variable font files in a given family should have the same set\n of variation axes. Also, each axis must have a consistent setting of min/max\n value ranges accross all the files.\n ", "result": "SKIP"}, {"description": "All tabular figures must have the same width across the RIBBI-family.", "key": ["", "", []], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Tabular figures need to have the same metrics in all styles in order to allow\n tables to be set with proper typographic control, but to maintain the placement\n of decimals and numeric columns between rows.\n\n Here's a good explanation of this:\n https://www.typography.com/techniques/fonts-for-financials/#tabular-figs\n ", "result": "PASS"}, {"description": "Does font file include unacceptable control character glyphs?", "key": ["", "", []], "logs": [{"message": "Unacceptable control characters were not identified.", "status": "PASS", "traceback": null}], "rationale": "\n Use of some unacceptable control characters in the U+0000 - U+001F range can\n lead to rendering issues on some platforms.\n\n Acceptable control characters are defined as .null (U+0000) and\n CR (U+000D) for this test.\n ", "result": "PASS"}, {"description": "Ensure Italic styles have Roman counterparts.", "key": ["", "", []], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n For each font family on Google Fonts, every Italic style must have\n a Roman sibling.\n\n This kind of problem was first observed at [1] where the Bold style was\n missing but BoldItalic was included.\n\n [1] https://github.com/google/fonts/pull/1482\n ", "result": "PASS"}, {"description": "Check axis ordering on the STAT table.", "key": ["", "", []], "logs": [{"message": "This font does not have a STAT table: /home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf [code: missing-STAT]", "status": "SKIP", "traceback": null}, {"message": "From a total of 1 font files, 1 of them (100.00%) lack a STAT table.\n\n\tAnd these are the most common STAT axis orderings:\n\t [code: summary]", "status": "INFO", "traceback": null}], "rationale": "\n This is (for now) a merely informative check to detect what's the axis ordering\n declared on the STAT table of fonts in the Google Fonts collection.\n\n We may later update this to enforce some unified axis ordering scheme,\n yet to be determined.\n ", "result": "INFO"}, {"description": "Check README.md has a sample image.", "key": ["", "", []], "logs": [{"message": "Unfulfilled Conditions: readme_contents, readme_directory", "status": "SKIP", "traceback": null}], "rationale": "\n In order to showcase what a font family looks like, the project's README.md\n file should ideally include a sample image and highlight it in the upper\n portion of the document, no more than 10 lines away from the top of the file.\n ", "result": "SKIP"}, {"description": "Checking file is named canonically.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font filename is correct, \"RubikLines-Regular.ttf\".", "status": "PASS", "traceback": null}], "rationale": "\n A font's filename must be composed as \"-.ttf\":\n\n - Nunito-Regular.ttf\n\n - Oswald-BoldItalic.ttf\n\n\n Variable fonts must list the axis tags in alphabetical order in\n square brackets and separated by commas:\n\n - Roboto[wdth,wght].ttf\n\n - Familyname-Italic[wght].ttf\n ", "result": "PASS"}, {"description": "Does DESCRIPTION file contain broken links?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All links in the DESCRIPTION file look good!", "status": "PASS", "traceback": null}], "rationale": "\n The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font\n family webpage on the Google Fonts website. For that reason, all hyperlinks\n in it must be properly working.\n ", "result": "PASS"}, {"description": "URLs on DESCRIPTION file must not display http(s) prefix.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All good!", "status": "PASS", "traceback": null}], "rationale": "\n The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font\n family webpage on the Google Fonts website.\n\n Google Fonts has a content formatting policy for that snippet that expects the\n text content of anchors not to include the http:// or https:// prefixes.\n ", "result": "PASS"}, {"description": "Does DESCRIPTION file contain a upstream Git repo URL?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Found a git repo URL: https://github.com/NaN-xyz/Glyph-Filters [code: url-found]", "status": "INFO", "traceback": null}, {"message": "Found a git repo URL: https://github.com/NaN-xyz/Rubik-Filtered [code: url-found]", "status": "INFO", "traceback": null}, {"message": "Looks great!", "status": "PASS", "traceback": null}], "rationale": "\n The contents of the DESCRIPTION.en-us.html file are displayed on the\n Google Fonts website in the about section of each font family specimen page.\n\n Since all of the Google Fonts collection is composed of libre-licensed fonts,\n this check enforces a policy that there must be a hypertext link in that page\n directing users to the repository where the font project files are\n made available.\n\n Such hosting is typically done on sites like Github, Gitlab, GNU Savannah or\n any other git-based version control service.\n ", "result": "INFO"}, {"description": "Is this a proper HTML snippet?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/DESCRIPTION.en_us.html is a propper HTML file.", "status": "PASS", "traceback": null}], "rationale": "\n Sometimes people write malformed HTML markup. This check should ensure the\n file is good.\n\n Additionally, when packaging families for being pushed to the `google/fonts`\n git repo, if there is no DESCRIPTION.en_us.html file, some older versions of\n the `add_font.py` tool insert a placeholder description file which contains\n invalid html. This file needs to either be replaced with an existing\n description file or edited by hand.\n ", "result": "PASS"}, {"description": "DESCRIPTION.en_us.html must have more than 200 bytes.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "DESCRIPTION.en_us.html is larger than 200 bytes.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "DESCRIPTION.en_us.html should end in a linebreak.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": ":-)", "status": "PASS", "traceback": null}], "rationale": "\n Some older text-handling tools sometimes misbehave if the last line of data\n in a text file is not terminated with a newline character (also known as '\\n').\n\n We know that this is a very small detail, but for the sake of keeping all\n DESCRIPTION.en_us.html files uniformly formatted throughout the GFonts\n collection, we chose to adopt the practice of placing this final linebreak\n character on them.\n ", "result": "PASS"}, {"description": "Check METADATA.pb parse correctly.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb parsed successfuly.", "status": "PASS", "traceback": null}], "rationale": "\n The purpose of this check is to ensure that the METADATA.pb file is not\n malformed.\n ", "result": "PASS"}, {"description": "Font designer field in METADATA.pb must not be 'unknown'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font designer field is not 'unknown'.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font designer field in METADATA.pb must not contain 'Multiple designers'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good.", "status": "PASS", "traceback": null}], "rationale": "\n For a while the string \"Multiple designers\" was used as a placeholder on\n METADATA.pb files. We should replace all those instances with actual designer\n names so that proper credits are displayed on the Google Fonts family\n specimen pages.\n\n If there's more than a single designer, the designer names must be\n separated by commas.\n ", "result": "PASS"}, {"description": "Multiple values in font designer field in METADATA.pb must be separated by commas.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good.", "status": "PASS", "traceback": null}], "rationale": "\n We must use commas instead of forward slashes because the server-side code\n at the fonts.google.com directory will segment the string on the commas into\n a list of names and display the first item in the list as the\n \"principal designer\" while the remaining names are identified as \"contributors\".\n\n See eg https://fonts.google.com/specimen/Rubik\n ", "result": "PASS"}, {"description": "Does METADATA.pb copyright field contain broken links?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All links in the METADATA.pb file look good!", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Ensure METADATA.pb lists all font binaries.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n The set of font binaries available, except the ones on a \"static\" subdir,\n must match exactly those declared on the METADATA.pb file.\n\n Also, to avoid confusion, we expect that font files (other than statics)\n are not placed on subdirectories.\n ", "result": "PASS"}, {"description": "Ensure METADATA.pb category field is valid.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK!", "status": "PASS", "traceback": null}], "rationale": "\n There are only five acceptable values for the category field in a METADATA.pb\n file:\n\n - MONOSPACE\n\n - SANS_SERIF\n\n - SERIF\n\n - DISPLAY\n\n - HANDWRITING\n\n This check is meant to avoid typos in this field.\n ", "result": "PASS"}, {"description": "Checking OS/2 fsType does not impose restrictions.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 fsType is properly set to zero.", "status": "PASS", "traceback": null}], "rationale": "\n The fsType in the OS/2 table is a legacy DRM-related field. Fonts in the\n Google Fonts collection must have it set to zero (also known as\n \"Installable Embedding\"). This setting indicates that the fonts can be\n embedded in documents and permanently installed by applications on\n remote systems.\n\n More detailed info is available at:\n https://docs.microsoft.com/en-us/typography/opentype/spec/os2#fstype\n ", "result": "PASS"}, {"description": "Checking OS/2 achVendID.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx\n [code: unknown]", "status": "WARN", "traceback": null}], "rationale": "\n Microsoft keeps a list of font vendors and their respective contact info. This\n list is updated regularly and is indexed by a 4-char \"Vendor ID\" which is\n stored in the achVendID field of the OS/2 table.\n\n Registering your ID is not mandatory, but it is a good practice since some\n applications may display the type designer / type foundry contact info on some\n dialog and also because that info will be visible on Microsoft's website:\n\n https://docs.microsoft.com/en-us/typography/vendors/\n\n This check verifies whether or not a given font's vendor ID is registered in\n that list or if it has some of the default values used by the most common\n font editors.\n\n Each new FontBakery release includes a cached copy of that list of vendor IDs.\n If you registered recently, you're safe to ignore warnings emitted by this\n check, since your ID will soon be included in one of our upcoming releases.\n ", "result": "WARN"}, {"description": "Check Google Fonts glyph coverage.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Google Fonts expects that fonts in its collection support at least the minimal\n set of characters defined in the `GF-latin-core` glyph-set.\n ", "result": "PASS"}, {"description": "Check for METADATA subsets with zero support.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n This check ensures that the subsets specified on a METADATA.pb file are\n actually supported (even if only partially) by the font files.\n\n Subsets for which none of the codepoints are supported will cause the\n check to FAIL.\n ", "result": "PASS", "severity": 10}, {"description": "Check for codepoints not covered by METADATA subsets.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The following codepoints supported by the font are not covered by\n any subsets defined in the font's metadata file, and will never\n be served. You can solve this by either manually adding additional\n subset declarations to METADATA.pb, or by editing the glyphset\n definitions.\n\n * U+02C7 CARON: try adding one of: yi, canadian-aboriginal, tifinagh\n * U+02D8 BREVE: try adding one of: yi, canadian-aboriginal\n * U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal\n * U+02DB OGONEK: try adding one of: yi, canadian-aboriginal\n * U+02DD DOUBLE ACUTE ACCENT: not included in any glyphset definition\n * U+0306 COMBINING BREVE: try adding one of: old-permic, tifinagh\n * U+030A COMBINING RING ABOVE: try adding syriac\n * U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage\n * U+030C COMBINING CARON: try adding one of: tai-le, cherokee\n * U+0312 COMBINING TURNED COMMA ABOVE: not included in any glyphset definition\n * U+0326 COMBINING COMMA BELOW: not included in any glyphset definition\n * U+0327 COMBINING CEDILLA: not included in any glyphset definition\n * U+0328 COMBINING OGONEK: not included in any glyphset definition\n * U+0335 COMBINING SHORT STROKE OVERLAY: not included in any glyphset definition\n * U+0337 COMBINING SHORT SOLIDUS OVERLAY: not included in any glyphset definition\n * U+0338 COMBINING LONG SOLIDUS OVERLAY: not included in any glyphset definition\n * U+2021 DOUBLE DAGGER: try adding adlam\n * U+2030 PER MILLE SIGN: try adding adlam\n * U+2070 SUPERSCRIPT ZERO: not included in any glyphset definition\n * U+2075 SUPERSCRIPT FIVE: not included in any glyphset definition\n * U+2076 SUPERSCRIPT SIX: not included in any glyphset definition\n * U+2077 SUPERSCRIPT SEVEN: not included in any glyphset definition\n * U+2078 SUPERSCRIPT EIGHT: not included in any glyphset definition\n * U+2079 SUPERSCRIPT NINE: not included in any glyphset definition\n * U+207D SUPERSCRIPT LEFT PARENTHESIS: not included in any glyphset definition\n * U+207E SUPERSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition\n * U+2080 SUBSCRIPT ZERO: not included in any glyphset definition\n * U+2081 SUBSCRIPT ONE: not included in any glyphset definition\n * U+2082 SUBSCRIPT TWO: not included in any glyphset definition\n * U+2083 SUBSCRIPT THREE: not included in any glyphset definition\n * U+2084 SUBSCRIPT FOUR: not included in any glyphset definition\n * U+2085 SUBSCRIPT FIVE: not included in any glyphset definition\n * U+2086 SUBSCRIPT SIX: not included in any glyphset definition\n * U+2087 SUBSCRIPT SEVEN: not included in any glyphset definition\n * U+2088 SUBSCRIPT EIGHT: not included in any glyphset definition\n * U+2089 SUBSCRIPT NINE: not included in any glyphset definition\n * U+208D SUBSCRIPT LEFT PARENTHESIS: not included in any glyphset definition\n * U+208E SUBSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition\n * U+212E ESTIMATED SYMBOL: not included in any glyphset definition\n * U+2153 VULGAR FRACTION ONE THIRD: not included in any glyphset definition\n * U+2154 VULGAR FRACTION TWO THIRDS: not included in any glyphset definition\n * U+215B VULGAR FRACTION ONE EIGHTH: not included in any glyphset definition\n * U+215C VULGAR FRACTION THREE EIGHTHS: not included in any glyphset definition\n * U+215D VULGAR FRACTION FIVE EIGHTHS: not included in any glyphset definition\n * U+215E VULGAR FRACTION SEVEN EIGHTHS: not included in any glyphset definition\n * U+FB01 LATIN SMALL LIGATURE FI: not included in any glyphset definition\n * U+FB02 LATIN SMALL LIGATURE FL: not included in any glyphset definition\n\nOr you can add the above codepoints to one of the subsets supported by the font: `cyrillic`, `cyrillic-ext`, `hebrew`, `latin`, `latin-ext`, `math`, `menu`, `symbols` [code: unreachable-subsetting]", "status": "WARN", "traceback": null}], "rationale": "\n This check ensures that all encoded glyphs in the font are covered by a\n subset declared in the METADATA.pb. Google Fonts splits the font into\n a set of subset fonts based on the contents of the `subsets` field and\n the subset definitions in the `glyphsets` repository.\n\n Any encoded glyphs which are not by any of these subset definitions\n will not be served in the subsetted fonts, and so will be unreachable to\n the end user.\n ", "result": "WARN", "severity": 2}, {"description": "Substitute copyright, registered and trademark symbols in name table entries.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No need to substitute copyright, registered and trademark symbols in name table entries of this font.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check the OS/2 usWeightClass is appropriate for the font's best SubFamily name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 usWeightClass is good", "status": "PASS", "traceback": null}], "rationale": "\n Google Fonts expects variable fonts, static ttfs and static otfs to have\n differing OS/2 usWeightClass values.\n\n - For Variable Fonts, Thin-Black must be 100-900\n\n - For static ttfs, Thin-Black can be 100-900 or 250-900\n\n - For static otfs, Thin-Black must be 250-900\n\n If static otfs are set lower than 250, text may appear blurry in\n legacy Windows applications.\n\n Glyphsapp users can change the usWeightClass value of an instance by adding\n a 'weightClass' customParameter.\n ", "result": "PASS"}, {"description": "Check font has a license.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Found license at '/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/OFL.txt'", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check license file has good copyright string.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "looks good", "status": "PASS", "traceback": null}], "rationale": "\n An OFL.txt file's first line should be the font copyright e.g:\n \"Copyright 2019 The Montserrat Project Authors\n (https://github.com/julietaula/montserrat)\"\n ", "result": "PASS", "severity": 10}, {"description": "Check OFL body text is correct.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OFL license body text is correct", "status": "PASS", "traceback": null}], "rationale": "\n Check OFL body text is correct.\n Often users will accidently delete parts of the body text.\n ", "result": "PASS", "severity": 10}, {"description": "Check copyright namerecords match license file.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Licensing entry on name table is correctly set.", "status": "PASS", "traceback": null}], "rationale": "\n A known licensing description must be provided in the NameID 14\n (LICENSE DESCRIPTION) entries of the name table.\n\n The source of truth for this check (to determine which license is in use) is\n a file placed side-by-side to your font project including the licensing terms.\n\n Depending on the chosen license, one of the following string snippets is\n expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the\n name table:\n\n - \"This Font Software is licensed under the SIL Open Font License, Version 1.1.\n This license is available with a FAQ at: https://scripts.sil.org/OFL\"\n\n - \"Licensed under the Apache License, Version 2.0\"\n\n - \"Licensed under the Ubuntu Font Licence 1.0.\"\n\n\n Currently accepted licenses are Apache or Open Font License. For a small set\n of legacy families the Ubuntu Font License may be acceptable as well.\n\n When in doubt, please choose OFL for new font projects.\n ", "result": "PASS"}, {"description": "License URL matches License text on name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has a valid license URL in NAME table.", "status": "PASS", "traceback": null}], "rationale": "\n A known license URL must be provided in the NameID 14 (LICENSE INFO URL)\n entry of the name table.\n\n The source of truth for this check is the licensing text found on the NameID 13\n entry (LICENSE DESCRIPTION).\n\n The string snippets used for detecting licensing terms are:\n\n - \"This Font Software is licensed under the SIL Open Font License, Version 1.1.\n This license is available with a FAQ at: https://scripts.sil.org/OFL\"\n\n - \"Licensed under the Apache License, Version 2.0\"\n\n - \"Licensed under the Ubuntu Font Licence 1.0.\"\n\n\n Currently accepted licenses are Apache or Open Font License. For a small set of\n legacy families the Ubuntu Font License may be acceptable as well.\n\n When in doubt, please choose OFL for new font projects.\n ", "result": "PASS"}, {"description": "Description strings in the name table must not exceed 200 characters.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All description name records have reasonably small lengths.", "status": "PASS", "traceback": null}], "rationale": "\n An old FontLab version had a bug which caused it to store copyright notices\n in nameID 10 entries.\n\n In order to detect those and distinguish them from actual legitimate usage of\n this name table entry, we expect that such strings do not exceed a reasonable\n length of 200 chars.\n\n Longer strings are likely instances of the FontLab bug.\n ", "result": "PASS"}, {"description": "Show hinting filesize impact.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Hinting filesize impact:\n\n | | /home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf |\n |:------------- | ---------------:|\n | Dehinted Size | 1.2Mb |\n | Hinted Size | 1.2Mb |\n | Increase | 24 bytes |\n | Change | 0.0 % |\n [code: size-impact]", "status": "INFO", "traceback": null}], "rationale": "\n This check is merely informative, displaying and useful comparison of filesizes\n of hinted versus unhinted font files.\n ", "result": "INFO"}, {"description": "Ensure files are not too large.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font file is 1.2Mb; ideally it should be less than 1.0Mb [code: large-font]", "status": "WARN", "traceback": null}], "rationale": "\n Serving extremely large font files on Google Fonts causes usability issues.\n This check ensures that file sizes are reasonable.\n ", "result": "WARN", "severity": 10}, {"description": "Version format is correct in 'name' table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Version format in NAME table entries is correct.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font has ttfautohint params?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font appears to our heuristic as not hinted using ttfautohint. [code: not-hinted]", "status": "SKIP", "traceback": null}], "result": "SKIP"}, {"description": "Font has old ttfautohint applied?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 2.201'] [code: version-not-detected]", "status": "INFO", "traceback": null}], "rationale": "\n Check if font has been hinted with an outdated version of ttfautohint.\n ", "result": "INFO"}, {"description": "EPAR table present in font?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "EPAR table not present in font. To learn more see https://github.com/fonttools/fontbakery/issues/818 [code: lacks-EPAR]", "status": "INFO", "traceback": null}], "rationale": "\n The EPAR table is/was a way of expressing common licensing permissions and\n restrictions in metadata; while almost nothing supported it, Dave Crossland\n wonders that adding it to everything in Google Fonts could help make it\n more popular.\n\n More info is available at:\n https://davelab6.github.io/epar/\n ", "result": "INFO", "severity": 1}, {"description": "Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "These are the ppm ranges declared on the gasp table:\n\nPPM <= 65535:\n\tflag = 0x0F\n\t- Use grid-fitting\n\t- Use grayscale rendering\n\t- Use gridfitting with ClearType symmetric smoothing\n\t- Use smoothing along multiple axes with ClearType\u00ae\n [code: ranges]", "status": "INFO", "traceback": null}, {"message": "The 'gasp' table is correctly set, with one gaspRange:value of 0xFFFF:0x0F.", "status": "PASS", "traceback": null}], "rationale": "\n Traditionally version 0 'gasp' tables were set so that font sizes below 8 ppem\n had no grid fitting but did have antialiasing. From 9-16 ppem, just grid\n fitting.\n And fonts above 17ppem had both antialiasing and grid fitting toggled on.\n The use of accelerated graphics cards and higher resolution screens make this\n approach obsolete. Microsoft's DirectWrite pushed this even further with much\n improved rendering built into the OS and apps.\n\n In this scenario it makes sense to simply toggle all 4 flags ON for all font\n sizes.\n ", "result": "INFO"}, {"description": "Make sure family name does not begin with a digit.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font family name first character is not a digit.", "status": "PASS", "traceback": null}], "rationale": "\n Font family names which start with a numeral are often not discoverable\n in Windows applications.\n ", "result": "PASS"}, {"description": "Are there non-ASCII characters in ASCII-only NAME table entries?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "None of the ASCII-only NAME table entries contain non-ASCII characteres.", "status": "PASS", "traceback": null}], "rationale": "\n The OpenType spec requires ASCII for the POSTSCRIPT_NAME (nameID 6).\n\n For COPYRIGHT_NOTICE (nameID 0) ASCII is required because that string should be\n the same in CFF fonts which also have this requirement in the OpenType spec.\n\n Note:\n A common place where we find non-ASCII strings is on name table entries\n with NameID > 18, which are expressly for localising the ASCII-only IDs\n into Hindi / Arabic / etc.\n ", "result": "PASS"}, {"description": "METADATA.pb: check if fonts field only has unique \"full_name\" values.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb \"fonts\" field only has unique \"full_name\" values.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: check if fonts field only contains unique style:weight pairs.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb \"fonts\" field only has unique style:weight pairs.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb license is \"APACHE2\", \"UFL\" or \"OFL\"?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font license is declared in METADATA.pb as \"OFL\"", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb should contain at least \"menu\" and \"latin\" subsets.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb contains \"menu\" and \"latin\" subsets.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb subsets should be alphabetically ordered.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb subsets are sorted in alphabetical order.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check METADATA.pb includes production subsets.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: listed_on_gfonts_api", "status": "SKIP", "traceback": null}], "rationale": "\n Check METADATA.pb file includes the same subsets as the family in production.\n ", "result": "SKIP"}, {"description": "METADATA.pb: Copyright notice is the same in all fonts?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Copyright is consistent across family", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check that METADATA.pb family values are all the same.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb: Family name is the same in all metadata \"fonts\" items.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: According to Google Fonts standards, families should have a Regular style.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Family has a Regular style.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Regular should be 400.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Regular has weight = 400.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checks METADATA.pb font.name field matches family name declared on the name table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Family name \"Rubik Lines\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Postscript name \"RubikLines-Regular\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.full_name value matches fullname declared on the name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font fullname \"Rubik Lines Regular\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.name value should be same as the family name declared on the name table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK: Family name \"Rubik Lines\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "rationale": "\n This check ensures consistency between the font name declared on the name table\n and the contents of the METADATA.pb file.\n ", "result": "PASS"}, {"description": "METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font fields \"full_name\" and \"post_script_name\" have equivalent values.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.filename and font.post_script_name fields have equivalent values?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font fields \"filename\" and \"post_script_name\" have equivalent values.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.name field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font.name field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.full_name field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font.full_name field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.filename field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb filename field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.post_script_name field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb postScriptName field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check name ID 25 to end with \"Italic\" for Italic VFs.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Not an Italic VF.", "status": "PASS", "traceback": null}], "rationale": "\n Due to a bug in (at least) Adobe Indesign, name ID 25\n needs to be different for Italic VFs than their Upright counterparts.\n Google Fonts chooses to append \"Italic\" here.\n ", "result": "PASS"}, {"description": "Copyright notices match canonical pattern in METADATA.pb", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb copyright string is good", "status": "PASS", "traceback": null}], "rationale": "\n The expected pattern for the copyright string adheres to the following rules:\n\n * It must say \"Copyright\" followed by a 4 digit year (optionally followed by\n a hyphen and another 4 digit year)\n\n * Then it must say \"The Project Authors\"\n\n * And within parentheses, a URL for a git repository must be provided\n\n * The check is case insensitive and does not validate whether the familyname\n is correct, even though we'd expect it is (and we may soon update the check\n to validate that aspect as well!)\n\n\n Here is an example of a valid copyright string:\n\n \"Copyright 2017 The Archivo Black Project Authors\n (https://github.com/Omnibus-Type/ArchivoBlack)\"\n ", "result": "PASS"}, {"description": "Copyright notices match canonical pattern in fonts", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Name Table entry: Copyright field 'Copyright 2020 The Rubik Filtered Project Authors (https://github.com/NaN-xyz/Rubik-Filtered)' matches canonical pattern.", "status": "PASS", "traceback": null}, {"message": "Name table copyright entries are good", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Copyright notice on METADATA.pb should not contain 'Reserved Font Name'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb copyright field does not contain \"Reserved Font Name\".", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Copyright notice shouldn't exceed 500 chars.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Copyright notice string is shorter than 500 chars.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Font filenames match font.filename entries?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Filenames in METADATA.pb look good.", "status": "PASS", "traceback": null}], "rationale": "\n Note:\n This check only looks for files in the current directory.\n\n Font files in subdirectories are checked by these other two checks:\n - com.google.fonts/check/metadata/undeclared_fonts\n - com.google.fonts/check/repo/vf_has_static_fonts\n\n We may want to merge them all into a single check.\n ", "result": "PASS"}, {"description": "METADATA.pb font.style \"italic\" matches font internals?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This check only applies to italic fonts.", "status": "SKIP", "traceback": null}], "result": "SKIP"}, {"description": "METADATA.pb font.style \"normal\" matches font internals?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font.style \"normal\" matches font internals.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.name and font.full_name fields match the values declared on the name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb familyname and fullName fields match corresponding name table entries.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Check font name is the same as family name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font name is the same as family name.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Check that font weight has a canonical value.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font weight has a canonical value.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check METADATA.pb font weights are correct.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 usWeightClass or wght axis value matches weight specified at METADATA.pb", "status": "PASS", "traceback": null}], "rationale": "\n Check METADATA.pb font weights are correct.\n\n For static fonts, the metadata weight should be the same as the static font's\n OS/2 usWeightClass.\n\n For variable fonts, the weight value should be 400 if the font's wght axis range\n includes 400, otherwise it should be the value closest to 400.\n ", "result": "PASS"}, {"description": "METADATA.pb weight matches postScriptName for static fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Weight value matches postScriptName.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Font styles are named canonically?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font styles are named canonically.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Check URL on copyright string is the same as in repository_url field.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Repository URL is https://github.com/NaN-xyz/Rubik-Filtered\n\nBut: OFL text has 'https:/' and HTML description has 'github.com/NaN-xyz/Glyph-Filters'\n [code: mismatch]", "status": "FAIL", "traceback": null}], "rationale": "\n Sometimes, perhaps due to copy-pasting, projects may declare different URLs\n between the font.coyright and the family.sources.repository_url fields.\n ", "result": "FAIL"}, {"description": "METADATA.pb: Check for primary_script", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Try to guess font's primary script and see if that's set in METADATA.pb.\n This is an educated guess based on the number of glyphs per script in the font\n and should be taken with caution.\n ", "result": "PASS"}, {"description": "Shapes languages in all GF glyphsets.", "experimental": "Since 2023/Nov/02", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "GF_Latin_Core glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| haw_Latn (Hawaiian) | Some base glyphs were missing: \u02bb |\n| ^ | Shaper produced a .notdef |\n| mh_Latn (Marshallese) | Some base glyphs were missing: \u1e36, \u1e37, \u1e42, \u1e43, \u1e46, \u1e47, \u1ecc, \u1ecd |\n| ^ | Some mark glyphs were missing: \u25cc\u0323 |\n| ^ | Shaper produced a .notdef |\n| scn_Latn (Sicilian) | Some base glyphs were missing: \u1e0c, \u1e0d |\n| ^ | Shaper produced a .notdef |\n| teo_Latn (Teso) | Some base glyphs were missing: \u0186, \u0190, \u0197, \u0244, \u0254, \u025b, \u0268, \u0289, \u1d43, \u1d49, \u1d4b, \u1d52, \u1d53, \u1d58, \u1da4, \u1db6, \u2071 |\n| ^ | Shaper produced a .notdef |\n\n [code: failed-language-shaping]", "status": "FAIL", "traceback": null}, {"message": "GF_Latin_Core glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| lg_Latn (Ganda) | No variant glyphs were found for Eng |\n| dyo_Latn (Jola-Fonyi) | No variant glyphs were found for Eng |\n| ny_Latn (Nyanja) | No variant glyphs were found for Eng |\n| wo_Latn (Wolof) | No variant glyphs were found for Eng |\n\n [code: warning-language-shaping]", "status": "WARN", "traceback": null}, {"message": "GF_Cyrillic_Plus glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| tg_Cyrl (Tajik) | Some base glyphs were missing: \u04b3 |\n| ^ | Shaper produced a .notdef |\n| uz_Cyrl (Uzbek (Cyrillic)) | Some base glyphs were missing: \u04b3 |\n| ^ | Shaper produced a .notdef |\n\n [code: failed-language-shaping]", "status": "FAIL", "traceback": null}, {"message": "GF_Cyrillic_Plus glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| ku_Cyrl (Kurdish) | No exemplar glyphs were defined for language Kurdish |\n\n [code: warning-language-shaping]", "status": "WARN", "traceback": null}], "rationale": "\n This check uses a heuristic to determine which GF glyphsets a font supports.\n Then it checks the font for correct shaping behaviour for all languages in\n those glyphsets.\n ", "result": "FAIL"}, {"description": "Stricter unitsPerEm criteria for Google Fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font em size is good (unitsPerEm = 1000).", "status": "PASS", "traceback": null}], "rationale": "\n Even though the OpenType spec allows unitsPerEm to be any value between 16\n and 16384, the Google Fonts project aims at a narrower set of reasonable values.\n\n Values above 4000 would likely result in unreasonable\n filesize increases.\n ", "result": "PASS"}, {"description": "Glyphs are similiar to Google Fonts version?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: api_gfonts_ttFont", "status": "SKIP", "traceback": null}], "result": "SKIP"}, {"description": "Checking direction of slnt axis angles", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n The 'slnt' axis values are defined as negative values for a clockwise (right)\n lean, and positive values for counter-clockwise lean. This is counter-intuitive\n for many designers who are used to think of a positive slant as a lean to\n the right.\n\n This check ensures that the slant axis direction is consistent with the specs.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_slnt\n ", "result": "SKIP"}, {"description": "Check font names are correct", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font names are good:\n\n| nameID | current | expected |\n| :--- | :--- | :--- |\n| Family Name | Rubik Lines | Rubik Lines |\n| Subfamily Name | Regular | Regular |\n| Full Name | Rubik Lines Regular | Rubik Lines Regular |\n| Postscript Name | RubikLines-Regular | RubikLines-Regular |", "status": "PASS", "traceback": null}], "rationale": "\n Google Fonts has several rules which need to be adhered to when\n setting a font's name table. Please read:\n https://googlefonts.github.io/gf-guide/statics.html#supported-styles\n https://googlefonts.github.io/gf-guide/statics.html#style-linking\n https://googlefonts.github.io/gf-guide/statics.html#unsupported-styles\n https://googlefonts.github.io/gf-guide/statics.html#single-weight-families\n ", "result": "PASS"}, {"description": "Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Copyright field for this font on METADATA.pb matches copyright notice entries on the name table.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font has all mandatory 'name' table entries?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font contains values for all mandatory name table entries.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Length of copyright notice must not exceed 500 characters.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All copyright notice name entries on the 'name' table are shorter than 500 characters.", "status": "PASS", "traceback": null}], "rationale": "\n This is an arbitrary max length for the copyright notice field of the name\n table. We simply don't want such notices to be too long. Typically such notices\n are actually much shorter than this with a length of roughly 70 or 80\n characters.\n ", "result": "PASS"}, {"description": "Check for font-v versioning.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Version string is: \"Version 2.201\"\nThe version string must ideally include a git commit hash and either a \"dev\" or a \"release\" suffix such as in the example below:\n\"Version 1.3; git-0d08353-release\" [code: bad-format]", "status": "INFO", "traceback": null}], "rationale": "\n The git sha1 tagging and dev/release features of Source Foundry `font-v` tool\n are awesome and we would love to consider upstreaming the approach into\n fontmake someday. For now we only emit an INFO if a given font does not yet\n follow the experimental versioning style, but at some point we may start\n enforcing it.\n ", "result": "INFO"}, {"description": "Check glyphs do not have components which are themselves components.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyphs do not contain nested components.", "status": "PASS", "traceback": null}], "rationale": "\n There have been bugs rendering variable fonts with nested components.\n Additionally, some static fonts with nested components have been reported\n to have rendering and printing issues.\n\n For more info, see:\n * https://github.com/fonttools/fontbakery/issues/2961\n * https://github.com/arrowtype/recursive/issues/412\n ", "result": "PASS"}, {"description": "Check a static ttf can be generated from a variable font.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Google Fonts may serve static fonts which have been generated from variable\n fonts. This test will attempt to generate a static ttf using fontTool's\n varLib mutator.\n\n The target font will be the mean of each axis e.g:\n\n ## VF font axes\n\n - min weight, max weight = 400, 800\n\n - min width, max width = 50, 100\n\n ## Target Instance\n\n - weight = 600\n\n - width = 75\n ", "result": "SKIP"}, {"description": "Check that variable fonts have an HVAR table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Not having a HVAR table can lead to costly text-layout operations on some\n platforms, which we want to avoid.\n\n So, all variable fonts on the Google Fonts collection should have an HVAR\n with valid values.\n\n More info on the HVAR table can be found at:\n https://docs.microsoft.com/en-us/typography/opentype/spec/otvaroverview#variation-data-tables-and-miscellaneous-requirements\n ", "result": "SKIP"}, {"description": "Font enables smart dropout control in \"prep\" table instructions?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "'prep' table contains instructions enabling smart dropout control.", "status": "PASS", "traceback": null}], "rationale": "\n This setup is meant to ensure consistent rendering quality for fonts across\n all devices (with different rendering/hinting capabilities).\n\n Below is the snippet of instructions we expect to see in the fonts:\n B8 01 FF PUSHW 0x01FF\n 85 SCANCTRL (unconditinally turn on\n dropout control mode)\n B0 04 PUSHB 0x04\n 8D SCANTYPE (enable smart dropout control)\n\n \"Smart dropout control\" means activating rules 1, 2 and 5:\n Rule 1: If a pixel's center falls within the glyph outline,\n that pixel is turned on.\n Rule 2: If a contour falls exactly on a pixel's center,\n that pixel is turned on.\n Rule 5: If a scan line between two adjacent pixel centers\n (either vertical or horizontal) is intersected\n by both an on-Transition contour and an off-Transition\n contour and neither of the pixels was already turned on\n by rules 1 and 2, turn on the pixel which is closer to\n the midpoint between the on-Transition contour and\n off-Transition contour. This is \"Smart\" dropout control.\n\n For more detailed info (such as other rules not enabled in this snippet),\n please refer to the TrueType Instruction Set documentation.\n ", "result": "PASS"}, {"description": "There must not be VTT Talk sources in the font.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There are no tables with VTT Talk sources embedded in the font.", "status": "PASS", "traceback": null}], "rationale": "\n The goal here is to reduce filesizes and improve pageloading when dealing\n with webfonts.\n\n The VTT Talk sources are not necessary at runtime and endup being just dead\n weight when left embedded in the font binaries. The sources should be kept on\n the project files but stripped out when building release binaries.\n ", "result": "PASS"}, {"description": "Are there unwanted Apple tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There are no unwanted AAT tables.", "status": "PASS", "traceback": null}], "rationale": "\n Apple's TrueType reference manual [1] describes SFNT tables not in the\n Microsoft OpenType specification [2] and these can sometimes sneak into final\n release files, but Google Fonts should only have OpenType tables.\n\n [1] https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6.html\n [2] https://docs.microsoft.com/en-us/typography/opentype/spec/\n ", "result": "PASS"}, {"description": "Check a font's STAT table contains compulsory Axis Values.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check a font's STAT table contains compulsory Axis Values which exist\n in the Google Fonts Axis Registry.\n\n We cannot determine what Axis Values the user will set for axes such as\n opsz, GRAD since these axes are unique for each font so we'll skip them.\n ", "result": "SKIP"}, {"description": "Check variable font instances", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check a font's fvar instance coordinates comply with our guidelines:\n https://googlefonts.github.io/gf-guide/variable.html#fvar-instances\n ", "result": "SKIP"}, {"description": "All name entries referenced by fvar instances exist on the name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n The purpose of this check is to make sure that all name entries referenced\n by variable font instances do exist in the name table.\n ", "result": "SKIP"}, {"description": "PPEM must be an integer on hinted fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_hinted", "status": "SKIP", "traceback": null}], "rationale": "\n Hinted fonts must have head table flag bit 3 set.\n\n Per https://docs.microsoft.com/en-us/typography/opentype/spec/head,\n bit 3 of Head::flags decides whether PPEM should be rounded. This bit should\n always be set for hinted fonts.\n\n Note:\n Bit 3 = Force ppem to integer values for all internal scaler math;\n May use fractional ppem sizes if this bit is clear;\n ", "result": "SKIP"}, {"description": "Are there caret positions declared for every ligature?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n All ligatures in a font must have corresponding caret (text cursor) positions\n defined in the GDEF table, otherwhise, users may experience issues with\n caret rendering.\n\n If using GlyphsApp or UFOs, ligature carets can be defined as anchors with\n names starting with 'caret_'. These can be compiled with fontmake as of\n version v2.4.0.\n ", "result": "PASS"}, {"description": "Is there kerning info for non-ligated sequences?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "GPOS table lacks kerning info for the following non-ligated sequences:\n\n\t- f + f\n\n\t- f + i\n\n\t- i + f\n\n\t- f + l\n\n\t- l + f\n\n\t- i + l [code: lacks-kern-info]", "status": "WARN", "traceback": null}], "rationale": "\n Fonts with ligatures should have kerning on the corresponding non-ligated\n sequences for text where ligatures aren't used\n (eg https://github.com/impallari/Raleway/issues/14).\n ", "result": "WARN"}, {"description": "Combined length of family and style must not exceed 27 characters.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All name entries are good.", "status": "PASS", "traceback": null}], "rationale": "\n According to a GlyphsApp tutorial [1], in order to make sure all versions of\n Windows recognize it as a valid font file, we must make sure that the\n concatenated length of the familyname (NameID.FONT_FAMILY_NAME) and\n style (NameID.FONT_SUBFAMILY_NAME) strings in the name table do not\n exceed 20 characters.\n\n After discussing the problem in more detail at FontBakery issue #2179 [2] we\n decided that allowing up to 27 chars would still be on the safe side, though.\n\n [1] https://glyphsapp.com/tutorials/multiple-masters-part-3-setting-up-instances\n [2] https://github.com/fonttools/fontbakery/issues/2179\n ", "result": "PASS"}, {"description": "Name table entries should not contain line-breaks.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Name table entries are all single-line (no line-breaks found).", "status": "PASS", "traceback": null}], "rationale": "\n There are some entries on the name table that may include more than one line\n of text. The Google Fonts team, though, prefers to keep the name table entries\n short and simple without line breaks.\n\n For instance, some designers like to include the full text of a font license in\n the \"copyright notice\" entry, but for the GFonts collection this entry should\n only mention year, author and other basic info in a manner enforced by\n com.google.fonts/check/font_copyright\n ", "result": "PASS"}, {"description": "Name table strings must not contain the string 'Reserved Font Name'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "None of the name table strings contain \"Reserved Font Name\".", "status": "PASS", "traceback": null}], "rationale": "\n Some designers adopt the \"Reserved Font Name\" clause of the OFL license. This\n means that the original author reserves the rights to the family name and other\n people can only distribute modified versions using a different family name.\n\n Google Fonts published updates to the fonts in the collection in order to fix\n issues and/or implement further improvements to the fonts. It is important to\n keep the family name so that users of the webfonts can benefit from the updates.\n Since it would forbid such usage scenario, all families in the GFonts collection\n are required to not adopt the RFN clause.\n\n This check ensures \"Reserved Font Name\" is not mentioned in the name table.\n ", "result": "PASS"}, {"description": "Check family name for GF Guide compliance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font name looks good.", "status": "PASS", "traceback": null}], "rationale": "\n Checks the family name for compliance with the Google Fonts Guide.\n https://googlefonts.github.io/gf-guide/onboarding.html#new-fonts\n\n If you want to have your family name added to the CamelCase\n exceptions list, please submit a pull request to the\n camelcased_familyname_exceptions.txt file.\n\n Similarly, abbreviations can be submitted to the\n abbreviations_familyname_exceptions.txt file.\n\n These are located in the Lib/fontbakery/data/googlefonts/ directory\n of the FontBakery source code currently hosted at\n https://github.com/fonttools/fontbakery/\n ", "result": "PASS"}, {"description": "Directory name in GFonts repo structure must match NameID 1 of the regular.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "A static fonts directory, if present, must contain manually hinted fonts", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Variable font family directories kept in the google/fonts git repo may include\n a static/ subdir containing static fonts, if manual hinting is used on\n these fonts. Otherwise, the directory should be removed.\n ", "result": "PASS"}, {"description": "A font repository should not include FontBakery report files", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n A FontBakery report is ephemeral and so should be used for posting issues on a\n bug-tracker instead of being hosted in the font project repository.\n ", "result": "PASS"}, {"description": "Check upstream.yaml file contains all required fields", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The upstream.yaml file contains all necessary fields", "status": "PASS", "traceback": null}], "rationale": "\n If a family has been pushed using the gftools packager, we must check that all\n the required fields in the upstream.yaml file have been populated.\n ", "result": "PASS", "severity": 10}, {"description": "A font repository should not include ZIP files", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Sometimes people check in ZIPs into their font project repositories. While we\n accept the practice of checking in binaries, we believe that a ZIP is a step\n too far ;)\n\n Note: a source purist position is that only source files and build scripts\n should be checked in.\n ", "result": "PASS"}, {"description": "Check font follows the Google Fonts vertical metric schema", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The sum of hhea.ascender + abs(hhea.descender) + hhea.lineGap is 1185 when it should be at least 1200 [code: bad-hhea-range]", "status": "FAIL", "traceback": null}], "rationale": "\n This check generally enforces Google Fonts\u2019 vertical metrics specifications.\n In particular:\n * lineGap must be 0\n * Sum of hhea ascender + abs(descender) + linegap must be\n between 120% and 200% of UPM\n * Warning if sum is over 150% of UPM\n\n The threshold levels 150% (WARN) and 200% (FAIL) are somewhat arbitrarily chosen\n and may hint at a glaring mistake in the metrics calculations or UPM settings.\n\n Our documentation includes further information:\n https://github.com/googlefonts/gf-docs/tree/main/VerticalMetrics\n ", "result": "FAIL"}, {"description": "Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: regular_remote_style", "status": "SKIP", "traceback": null}], "rationale": "\n If the family already exists on Google Fonts, we need to ensure that the\n checked family's vertical metrics are similar. This check will test the\n following schema which was outlined in Font Bakery issue #1162 [1]:\n\n - The family should visually have the same vertical metrics as the Regular\n style hosted on Google Fonts.\n\n - If the family on Google Fonts has differing hhea and typo metrics, the family\n being checked should use the typo metrics for both the hhea and typo entries.\n\n - If the family on Google Fonts has use typo metrics not enabled and the family\n being checked has it enabled, the hhea and typo metrics should use the family\n on Google Fonts winAscent and winDescent values.\n\n - If the upms differ, the values must be scaled so the visual appearance is\n the same.\n\n [1] https://github.com/fonttools/fontbakery/issues/1162\n ", "result": "SKIP"}, {"description": "Check font follows the Google Fonts CJK vertical metric schema", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cjk_font", "status": "SKIP", "traceback": null}], "rationale": "\n CJK fonts have different vertical metrics when compared to Latin fonts.\n We follow the schema developed by dr Ken Lunde for Source Han Sans and\n the Noto CJK fonts.\n\n Our documentation includes further information:\n https://github.com/googlefonts/gf-docs/tree/main/Spec#cjk-vertical-metrics\n ", "result": "SKIP"}, {"description": "Check if the vertical metrics of a CJK family are similar to the same family hosted on Google Fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cjk_font, regular_remote_style", "status": "SKIP", "traceback": null}], "rationale": "\n Check CJK family has the same vertical metrics as the same family\n hosted on Google Fonts.\n ", "result": "SKIP"}, {"description": "Does the font contain less than 150 CJK characters?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_claiming_to_be_cjk_font", "status": "SKIP", "traceback": null}], "rationale": "\n Kana has 150 characters and it's the smallest CJK writing system.\n\n If a font contains less CJK glyphs than this writing system, we inform the\n user that some glyphs may be encoded incorrectly.\n ", "result": "SKIP"}, {"description": "Check variable font instances don't have duplicate names", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n This check's purpose is to detect duplicate named instances names in a\n given variable font.\n Repeating instance names may be the result of instances for several VF axes\n defined in `fvar`, but since currently only weight+italic tokens are allowed\n in instance names as per GF specs, they ended up repeating.\n Instead, only a base set of fonts for the most default representation of the\n family can be defined through instances in the `fvar` table, all other\n instances will have to be left to access through the `STAT` table.\n ", "result": "SKIP"}, {"description": "Ensure VFs do not contain the ital axis.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n The 'ital' axis is not supported yet in Google Chrome.\n\n For the time being, we need to ensure that VFs do not contain this axis.\n Once browser support is better, we can deprecate this check.\n\n For more info regarding browser support, see:\n https://arrowtype.github.io/vf-slnt-test/\n ", "result": "SKIP"}, {"description": "Ensure VFs with duplexed axes do not vary horizontal advance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Certain axes, such as grade (GRAD) or roundness (ROND), should not\n change any advanceWidth or kerning data across the font's design space.\n This is because altering the advance width of glyphs can cause text reflow.\n ", "result": "SKIP"}, {"description": "Validate METADATA.pb axes values are within gf_axisregistry bounds.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Each axis range in a METADATA.pb file must be registered, and within the bounds\n of the axis definition in the Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n ", "result": "SKIP"}, {"description": "Validate METADATA.pb axes tags are defined in gf_axisregistry.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Ensure all axes in a METADATA.pb file are registered in the\n Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n\n Why does Google Fonts have its own Axis Registry?\n\n We support a superset of the OpenType axis registry axis set, and use\n additional metadata for each axis. Axes present in a font file but not in this\n registry will not function via our API. No variable font is expected to\n support all of the axes here.\n\n Any font foundry or distributor library that offers variable fonts has a\n implicit, latent, de-facto axis registry, which can be extracted by scanning\n the library for axes' tags, labels, and min/def/max values. While in 2016\n Microsoft originally offered to include more axes in the OpenType 1.8\n specification (github.com/microsoft/OpenTypeDesignVariationAxisTags), as of\n August 2020, this effort has stalled. We hope more foundries and distributors\n will publish documents like this that make their axes explicit, to encourage\n of adoption of variable fonts throughout the industry, and provide source\n material for a future update to the OpenType specification's axis registry.\n ", "result": "SKIP"}, {"description": "Validate defaults on fvar table match registered fallback names in GFAxisRegistry.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check that axis defaults have a corresponding fallback name registered at the\n Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n\n This is necessary for the following reasons:\n\n To get ZIP files downloads on Google Fonts to be accurate \u2014 otherwise the\n chosen default font is not generated. The Newsreader family, for instance, has\n a default value on the 'opsz' axis of 16pt. If 16pt was not a registered\n fallback position, then the ZIP file would instead include another position\n as default (such as 14pt).\n\n For the Variable fonts to display the correct location on the specimen page.\n\n For VF with no weight axis to be displayed at all. For instance, Ballet, which\n has no weight axis, was not appearing in sandbox because default position on\n 'opsz' axis was 16pt, and it was not yet a registered fallback positon.\n ", "result": "SKIP"}, {"description": "Validate STAT particle names and values match the fallback names in GFAxisRegistry.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check that particle names and values on STAT table match the fallback names\n in each axis entry at the Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n ", "result": "SKIP"}, {"description": "Validate VF axes match the ones declared on METADATA.pb.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n All font variation axes present in the font files must be properly declared\n on METADATA.pb so that they can be served by the GFonts API.\n ", "result": "SKIP"}, {"description": "Ensure METADATA.pb does not use escaped strings.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n In some cases we've seen designer names and other fields with escaped strings\n in METADATA files (such as \"Juli\\303\\241n\").\n\n Nowadays the strings can be full unicode strings (such as \"Juli\u00e1n\") and do\n not need escaping.\n\n Escaping quotes or double-quotes is fine, though.\n ", "result": "PASS"}, {"description": "METADATA.pb: Designers are listed correctly on the Google Fonts catalog?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Designer Luke Prowse still does not have an avatar image. Please provide one. [code: missing-avatar]", "status": "FAIL", "traceback": null}], "rationale": "\n Google Fonts has a catalog of designers.\n\n This check ensures that the online entries of the catalog can be found based\n on the designer names listed on the METADATA.pb file.\n\n It also validates the URLs and file formats are all correctly set.\n ", "result": "FAIL"}, {"description": "Ensure variable fonts include an avar table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Most variable fonts should include an avar table to correctly define\n axes progression rates.\n\n For example, a weight axis from 0% to 100% doesn't map directly to 100 to 1000,\n because a 10% progression from 0% may be too much to define the 200,\n while 90% may be too little to define the 900.\n\n If the progression rates of axes is linear, this check can be ignored.\n Fontmake will also skip adding an avar table if the progression rates\n are linear. However, we still recommend designers visually proof each\n instance is at the expected weight, width etc.\n ", "result": "SKIP"}, {"description": "On a family update, the DESCRIPTION.en_us.html file should ideally also be updated.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The DESCRIPTION.en_us.html file in this family has not changed in comparison to the latest font release on the google/fonts github repo.\nPlease consider mentioning note-worthy improvements made to the family recently. [code: description-not-updated]", "status": "WARN", "traceback": null}], "rationale": "\n We want to ensure that any significant changes to the font family are\n properly mentioned in the DESCRIPTION file.\n\n In general, it means that the contents of the DESCRIPTION.en_us.html file\n will typically change if when font files are updated. Please treat this check\n as a reminder to do so whenever appropriate!\n ", "result": "WARN"}, {"description": "Check small caps glyphs are available.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Ensure small caps glyphs are available if\n a font declares smcp or c2sc OT features.\n ", "result": "PASS"}, {"description": "Ensure Stylistic Sets have description.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Stylistic sets should provide description text. Programs such as InDesign,\n TextEdit and Inkscape use that info to display to the users so that they know\n what a given stylistic set offers.\n ", "result": "PASS"}, {"description": "OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n All fonts on the Google Fonts collection should have OS/2.fsSelection bit 7\n (USE_TYPO_METRICS) set. This requirement is part of the vertical metrics scheme\n established as a Google Fonts policy aiming at a common ground supported by\n all major font rendering environments.\n\n For more details, read:\n https://github.com/googlefonts/gf-docs/blob/main/VerticalMetrics/README.md\n\n Below is the portion of that document that is most relevant to this check:\n\n Use_Typo_Metrics must be enabled. This will force MS Applications to use the\n OS/2 Typo values instead of the Win values. By doing this, we can freely set\n the Win values to avoid clipping and control the line height with the typo\n values. It has the added benefit of future line height compatibility. When\n a new script is added, we simply change the Win values to the new yMin\n and yMax, without needing to worry if the line height have changed.\n ", "result": "PASS", "severity": 10}, {"description": "Ensure fonts have ScriptLangTags declared on the 'meta' table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This font file does not have a 'meta' table. [code: lacks-meta-table]", "status": "WARN", "traceback": null}], "rationale": "\n The OpenType 'meta' table originated at Apple. Microsoft added it to OT with\n just two DataMap records:\n\n - dlng: comma-separated ScriptLangTags that indicate which scripts,\n or languages and scripts, with possible variants, the font is designed for.\n\n - slng: comma-separated ScriptLangTags that indicate which scripts,\n or languages and scripts, with possible variants, the font supports.\n\n\n The slng structure is intended to describe which languages and scripts the\n font overall supports. For example, a Traditional Chinese font that also\n contains Latin characters, can indicate Hant,Latn, showing that it supports\n Hant, the Traditional Chinese variant of the Hani script, and it also\n supports the Latn script.\n\n The dlng structure is far more interesting. A font may contain various glyphs,\n but only a particular subset of the glyphs may be truly \"leading\" in the design,\n while other glyphs may have been included for technical reasons. Such a\n Traditional Chinese font could only list Hant there, showing that it\u2019s designed\n for Traditional Chinese, but the font would omit Latn, because the developers\n don\u2019t think the font is really recommended for purely Latin-script use.\n\n The tags used in the structures can comprise just script, or also language\n and script. For example, if a font has Bulgarian Cyrillic alternates in the\n locl feature for the cyrl BGR OT languagesystem, it could also indicate in\n dlng explicitly that it supports bul-Cyrl. (Note that the scripts and languages\n in meta use the ISO language and script codes, not the OpenType ones).\n\n This check ensures that the font has the meta table containing the\n slng and dlng structures.\n\n All families in the Google Fonts collection should contain the 'meta' table.\n Windows 10 already uses it when deciding on which fonts to fall back to.\n The Google Fonts API and also other environments could use the data for\n smarter filtering. Most importantly, those entries should be added\n to the Noto fonts.\n\n In the font making process, some environments store this data in external\n files already. But the meta table provides a convenient way to store this\n inside the font file, so some tools may add the data, and unrelated tools\n may read this data. This makes the solution much more portable and universal.\n ", "result": "WARN", "severity": 3}, {"description": "Ensure fonts do not contain any pre-production tables.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Tables such as `Debg` are useful in the pre-production stages of font\n development, but add unnecessary bloat to a production font and should\n be removed before release.\n ", "result": "PASS", "severity": 6}, {"description": "Check font family directory name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Directory name is \"rubiklines\", as expected.", "status": "PASS", "traceback": null}], "rationale": "\n We want the directory name of a font family to be predictable and directly\n derived from the family name, all lowercased and removing spaces.\n ", "result": "PASS"}, {"description": "Check font can render its own name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font can successfully render its own name (Rubik Lines)", "status": "PASS", "traceback": null}], "rationale": "\n A base expectation is that a font family's regular/default (400 roman) style\n can render its 'menu name' (nameID 1) in itself.\n ", "result": "PASS"}, {"description": "Check samples can be rendered.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK.", "status": "PASS", "traceback": null}], "rationale": "\n In order to prevent tofu from being seen on fonts.google.com, this check\n verifies that all samples specified by METADATA.pb can be properly\n rendered by the font.\n ", "result": "PASS"}, {"description": "Check if category on METADATA.pb matches what can be inferred from the family name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK.", "status": "PASS", "traceback": null}], "rationale": "\n Sometimes the font familyname contains words that hint at which is the most\n likely correct category to be declared on METADATA.pb\n ", "result": "PASS"}, {"description": "Check font has the expected color font tables.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks Good!", "status": "PASS", "traceback": null}], "rationale": "\n COLR v0 fonts are widely supported in most browsers so they do not require\n an SVG color table. However, some environments (e.g. Safari, Adobe apps)\n do not currently support COLR v1 so we need to add an SVG table to these fonts,\n except in the case of variable fonts, since SVG does not support\n OpenType Variations.\n\n To automatically generate compatible SVG/COLR tables,\n run the maximum_color tool in nanoemoji:\n https://github.com/googlefonts/nanoemoji\n ", "result": "PASS"}, {"description": "Color layers should have a minimum brightness", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Layers of a COLRv0 font should not be too dark or too bright. When layer colors\n are set explicitly, they can't be changed and they may turn out illegible\n against dark or bright backgrounds.\n\n While traditional color-less fonts can be colored in design apps or CSS, a\n black color definition in a COLRv0 font actually means that that layer will be\n rendered in black regardless of the background color. This leads to text\n becoming invisible against a dark background, for instance when using a dark\n theme in a web browser or operating system.\n\n This check ensures that layer colors are at least 10% bright and at most 90%\n bright, when not already set to the current color (0xFFFF).\n ", "result": "PASS"}, {"description": "Put an empty glyph on GID 1 right after the .notdef glyph for COLRv0 fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n A rendering bug in Windows 10 paints whichever glyph is on GID 1 on top of\n some glyphs, colored or not. This only occurs for COLR version 0 fonts.\n\n Having a glyph with no contours on GID 1 is a practical workaround for that.\n\n See https://github.com/googlefonts/gftools/issues/609\n ", "result": "PASS"}, {"description": "Noto fonts must have an ARTICLE.en_us.html file", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_noto", "status": "SKIP", "traceback": null}], "rationale": "\n Noto fonts are displayed in a different way on the fonts.google.com\n web site, and so must also contain an article about them.\n ", "result": "SKIP"}, {"description": "At least one designer is declared in METADATA.pb", "experimental": "Since 2023/Oct/12", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font designer field is not empty.", "status": "PASS", "traceback": null}], "rationale": "\n Any font published on Google Fonts must credit one or several authors,\n foundry and/or individuals.\n\n Ideally, all authors listed in the upstream repository's AUTHORS.txt should\n be mentioned in the designer field.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"FAIL": 4, "INFO": 7, "PASS": 96, "SKIP": 27, "WARN": 6}}, {"checks": [{"description": "Checking all files are in the same directory.", "key": ["", "", []], "logs": [{"message": "All files are in the same directory.", "status": "PASS", "traceback": null}], "rationale": "\n If the set of font files passed in the command line is not all in the\n same directory, then we warn the user since the tool will interpret the\n set of files as belonging to a single family (and it is unlikely that\n the user would store the files from a single family spreaded\n in several separate directories).\n ", "result": "PASS"}, {"description": "Each font in a family must have the same set of vertical metrics values.", "key": ["", "", []], "logs": [{"message": "Vertical metrics are the same across the family.", "status": "PASS", "traceback": null}], "rationale": "\n We want all fonts within a family to have the same vertical metrics so\n their line spacing is consistent across the family.\n ", "result": "PASS"}, {"description": "Name table records must not have trailing spaces.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No trailing spaces on name table entries.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking OS/2 usWinAscent & usWinDescent.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 usWinAscent & usWinDescent values look good!", "status": "PASS", "traceback": null}], "rationale": "\n A font's winAscent and winDescent values should be greater than or equal to\n the head table's yMax, abs(yMin) values. If they are less than these values,\n clipping can occur on Windows platforms\n (https://github.com/RedHatBrand/Overpass/issues/33).\n\n If the font includes tall/deep writing systems such as Arabic or Devanagari,\n the winAscent and winDescent can be greater than the yMax and absolute yMin\n values to accommodate vowel marks.\n\n When the 'win' Metrics are significantly greater than the UPM, the linespacing\n can appear too loose. To counteract this, enabling the OS/2 fsSelection\n bit 7 (Use_Typo_Metrics), will force Windows to use the OS/2 'typo' values\n instead. This means the font developer can control the linespacing with\n the 'typo' values, whilst avoiding clipping by setting the 'win' values to\n values greater than the yMax and absolute yMin.\n ", "result": "PASS"}, {"description": "Checking OS/2 Metrics match hhea Metrics.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2.sTypoAscender/Descender values match hhea.ascent/descent.", "status": "PASS", "traceback": null}], "rationale": "\n OS/2 and hhea vertical metric values should match. This will produce the\n same linespacing on Mac, GNU+Linux and Windows.\n\n - Mac OS X uses the hhea values.\n - Windows uses OS/2 or Win, depending on the OS or fsSelection bit value.\n\n When OS/2 and hhea vertical metrics match, the same linespacing results on\n macOS, GNU+Linux and Windows. Note that fixing this issue in a previously\n released font may cause reflow in user documents and unhappy users.\n ", "result": "PASS"}, {"description": "Checking with ots-sanitize.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "ots-sanitize passed this file", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Do we have the latest version of FontBakery installed?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "FontBakery is up-to-date.", "status": "PASS", "traceback": null}], "rationale": "\n Running old versions of FontBakery can lead to a poor report which may\n include false WARNs and FAILs due do bugs, as well as outdated\n quality assurance criteria.\n\n Older versions will also not report problems that are detected by new checks\n added to the tool in more recent updates.\n ", "result": "PASS"}, {"description": "Font contains '.notdef' as its first glyph?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n The OpenType specification v1.8.2 recommends that the first glyph is the\n '.notdef' glyph without a codepoint assigned and with a drawing:\n\n The .notdef glyph is very important for providing the user feedback\n that a glyph is not found in the font. This glyph should not be left\n without an outline as the user will only see what looks like a space\n if a glyph is missing and not be aware of the active font\u2019s limitation.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/recom#glyph-0-the-notdef-glyph\n\n Pre-v1.8, it was recommended that fonts should also contain 'space', 'CR'\n and '.null' glyphs. This might have been relevant for MacOS 9 applications.\n ", "result": "PASS"}, {"description": "Font contains glyphs for whitespace characters?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font contains glyphs for whitespace characters.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font has **proper** whitespace glyph names?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has **AGL recommended** names for whitespace glyphs.", "status": "PASS", "traceback": null}], "rationale": "\n This check enforces adherence to recommended whitespace\n (codepoints 0020 and 00A0) glyph names according to the Adobe Glyph List.\n ", "result": "PASS"}, {"description": "Whitespace glyphs have ink?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There is no whitespace glyph with ink.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check that legacy accents aren't used in composite glyphs. (derived from com.google.fonts/check/legacy_accents)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Legacy accents should not be used in accented glyphs. The use of legacy\n accents in accented glyphs breaks the mark to mark combining feature that\n allows a font to stack diacritics over one glyph. Use combining marks\n instead as a component in composite glyphs.\n\n Legacy accents should not have anchors and should have non-zero width.\n They are often used independently of a letter, either as a placeholder\n for an expected combined mark+letter combination in MacOS, or separately.\n For instance, U+00B4 (ACUTE ACCENT) is often mistakenly used as an apostrophe,\n U+0060 (GRAVE ACCENT) is used in Markdown to notify code blocks,\n and ^ is used as an exponential operator in maths.\n ", "result": "PASS"}, {"description": "Check that Arabic spacing symbols U+FBB2\u2013FBC1 aren't classified as marks.", "experimental": "Since 2023/Oct/20", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Unicode has a few spacing symbols representing Arabic dots and other marks,\n but they are purposefully not classified as marks.\n\n Many fonts mistakenly classify them as marks, making them unsuitable\n for their original purpose as stand-alone symbols to used in pedagogical\n contexts discussing Arabic consonantal marks.\n ", "result": "PASS", "severity": 4}, {"description": "Check that glyph for U+0675 ARABIC LETTER HIGH HAMZA is not a mark.", "experimental": "Since 2023/Oct/20", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This check will only run on fonts that have both glyphs U+0621 and U+0675 [code: glyphs-missing]", "status": "SKIP", "traceback": null}], "rationale": "\n Many fonts incorrectly treat ARABIC LETTER HIGH HAMZA (U+0675) as a variant of\n ARABIC HAMZA ABOVE (U+0654) and make it a combining mark of the same size.\n\n But U+0675 is a base letter and should be a variant of ARABIC LETTER HAMZA\n (U+0621) but raised slightly above baseline.\n\n Not doing so effectively makes the font useless for Jawi and\n possibly Kazakh as well.\n ", "result": "SKIP", "severity": 4}, {"description": "Font contains all required tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This font contains the following optional tables:\n\n\t- loca\n\n\t- prep\n\n\t- GPOS\n\n\t- GSUB\n\n\t- gasp [code: optional-tables]", "status": "INFO", "traceback": null}, {"message": "Font contains all required tables.", "status": "PASS", "traceback": null}], "rationale": "\n According to the OpenType spec\n https://docs.microsoft.com/en-us/typography/opentype/spec/otff#required-tables\n\n Whether TrueType or CFF outlines are used in an OpenType font, the following\n tables are required for the font to function correctly:\n\n - cmap (Character to glyph mapping)\u23ce\n - head (Font header)\u23ce\n - hhea (Horizontal header)\u23ce\n - hmtx (Horizontal metrics)\u23ce\n - maxp (Maximum profile)\u23ce\n - name (Naming table)\u23ce\n - OS/2 (OS/2 and Windows specific metrics)\u23ce\n - post (PostScript information)\n\n The spec also documents that variable fonts require the following table:\n\n - STAT (Style attributes)\n\n Depending on the typeface and coverage of a font, certain tables are\n recommended for optimum quality.\n\n For example:\u23ce\n - the performance of a non-linear font is improved if the VDMX, LTSH,\n and hdmx tables are present.\u23ce\n - Non-monospaced Latin fonts should have a kern table.\u23ce\n - A gasp table is necessary if a designer wants to influence the sizes\n at which grayscaling is used under Windows. Etc.\n ", "result": "INFO"}, {"description": "Are there unwanted tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There are no unwanted tables.", "status": "PASS", "traceback": null}], "rationale": "\n Some font editors store source data in their own SFNT tables, and these\n can sometimes sneak into final release files, which should only have\n OpenType spec tables.\n ", "result": "PASS"}, {"description": "Check correctness of STAT table strings", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n On the STAT table, the \"Italic\" keyword must not be used on AxisValues\n for variation axes other than 'ital'.\n ", "result": "SKIP"}, {"description": "Glyph names are all valid?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyph names are all valid.", "status": "PASS", "traceback": null}], "rationale": "\n Microsoft's recommendations for OpenType Fonts states the following:\n\n 'NOTE: The PostScript glyph name must be no longer than 31 characters,\n include only uppercase or lowercase English letters, European digits,\n the period or the underscore, i.e. from the set [A-Za-z0-9_.] and\n should start with a letter, except the special glyph name \".notdef\"\n which starts with a period.'\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/recom#post-table\n\n\n In practice, though, particularly in modern environments, glyph names\n can be as long as 63 characters.\n\n According to the \"Adobe Glyph List Specification\" available at:\n\n https://github.com/adobe-type-tools/agl-specification\n ", "result": "PASS"}, {"description": "Font contains unique glyph names?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyph names are all unique.", "status": "PASS", "traceback": null}], "rationale": "\n Duplicate glyph names prevent font installation on Mac OS X.\n ", "result": "PASS"}, {"description": "List all superfamily filepaths", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines [code: family-path]", "status": "INFO", "traceback": null}], "rationale": "\n This is a merely informative check that lists all sibling families\n detected by fontbakery.\n\n Only the fontfiles in these directories will be considered in\n superfamily-level checks.\n ", "result": "INFO"}, {"description": "Each font in set of sibling families must have the same set of vertical metrics values.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Sibling families were not detected.", "status": "SKIP", "traceback": null}], "rationale": "\n We may want all fonts within a super-family (all sibling families) to have\n the same vertical metrics so their line spacing is consistent\n across the super-family.\n\n This is an experimental extended version of\n com.google.fonts/check/family/vertical_metrics and for now it will only\n result in WARNs.\n ", "result": "SKIP"}, {"description": "Ensure indic fonts have the Indian Rupee Sign glyph.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_indic_font", "status": "SKIP", "traceback": null}], "rationale": "\n Per Bureau of Indian Standards every font supporting one of the\n official Indian languages needs to include Unicode Character\n \u201c\u20b9\u201d (U+20B9) Indian Rupee Sign.\n ", "result": "SKIP"}, {"description": "Check font contains no unreachable glyphs", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The following glyphs could not be reached by codepoint or substitution rules:\n\n\t- LineHorizontalComponent\n\n\t- LineVerticalComponent\n\n\t- brevecombcy\n\n\t- uni030C.alt\n [code: unreachable-glyphs]", "status": "WARN", "traceback": null}], "rationale": "\n Glyphs are either accessible directly through Unicode codepoints or through\n substitution rules.\n\n In Color Fonts, glyphs are also referenced by the COLR table.\n\n Any glyphs not accessible by either of these means\n are redundant and serve only to increase the font's file size.\n ", "result": "WARN"}, {"description": "Check if each glyph has the recommended amount of contours.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.\n\nThe following glyphs do not have the recommended number of contours:\n\n\t- Glyph name: exclam\tContours detected: 102\tExpected: 2\n\n\t- Glyph name: quotedbl\tContours detected: 100\tExpected: 2\n\n\t- Glyph name: numbersign\tContours detected: 154\tExpected: 2\n\n\t- Glyph name: dollar\tContours detected: 225\tExpected: 1, 3 or 5\n\n\t- Glyph name: percent\tContours detected: 169\tExpected: 5\n\n\t- Glyph name: ampersand\tContours detected: 120\tExpected: 1, 2 or 3\n\n\t- Glyph name: quotesingle\tContours detected: 48\tExpected: 1\n\n\t- Glyph name: parenleft\tContours detected: 107\tExpected: 1\n\n\t- Glyph name: parenright\tContours detected: 123\tExpected: 1\n\n\t- Glyph name: asterisk\tContours detected: 78\tExpected: 1 or 4\n\n\t- Glyph name: plus\tContours detected: 88\tExpected: 1\n\n\t- Glyph name: comma\tContours detected: 35\tExpected: 1\n\n\t- Glyph name: hyphen\tContours detected: 92\tExpected: 1\n\n\t- Glyph name: period\tContours detected: 21\tExpected: 1\n\n\t- Glyph name: slash\tContours detected: 110\tExpected: 1\n\n\t- Glyph name: zero\tContours detected: 178\tExpected: 2 or 3\n\n\t- Glyph name: one\tContours detected: 156\tExpected: 1\n\n\t- Glyph name: two\tContours detected: 183\tExpected: 1\n\n\t- Glyph name: three\tContours detected: 226\tExpected: 1\n\n\t- Glyph name: four\tContours detected: 112\tExpected: 1 or 2\n\n\t- Glyph name: five\tContours detected: 153\tExpected: 1\n\n\t- Glyph name: six\tContours detected: 128\tExpected: 1 or 2\n\n\t- Glyph name: seven\tContours detected: 144\tExpected: 1\n\n\t- Glyph name: eight\tContours detected: 146\tExpected: 3\n\n\t- Glyph name: nine\tContours detected: 156\tExpected: 1 or 2\n\n\t- Glyph name: colon\tContours detected: 52\tExpected: 2\n\n\t- Glyph name: semicolon\tContours detected: 69\tExpected: 2\n\n\t- Glyph name: less\tContours detected: 107\tExpected: 1\n\n\t- Glyph name: equal\tContours detected: 76\tExpected: 2\n\n\t- Glyph name: greater\tContours detected: 84\tExpected: 1\n\n\t- Glyph name: question\tContours detected: 146\tExpected: 2\n\n\t- Glyph name: at\tContours detected: 231\tExpected: 2\n\n\t- Glyph name: A\tContours detected: 140\tExpected: 2\n\n\t- Glyph name: B\tContours detected: 144\tExpected: 2 or 3\n\n\t- Glyph name: C\tContours detected: 157\tExpected: 1\n\n\t- Glyph name: D\tContours detected: 166\tExpected: 2\n\n\t- Glyph name: E\tContours detected: 149\tExpected: 1\n\n\t- Glyph name: F\tContours detected: 146\tExpected: 1\n\n\t- Glyph name: G\tContours detected: 155\tExpected: 1\n\n\t- Glyph name: H\tContours detected: 160\tExpected: 1\n\n\t- Glyph name: I\tContours detected: 119\tExpected: 1\n\n\t- Glyph name: J\tContours detected: 174\tExpected: 1\n\n\t- Glyph name: K\tContours detected: 108\tExpected: 1 or 2\n\n\t- Glyph name: L\tContours detected: 134\tExpected: 1\n\n\t- Glyph name: M\tContours detected: 181\tExpected: 1\n\n\t- Glyph name: N\tContours detected: 178\tExpected: 1\n\n\t- Glyph name: O\tContours detected: 168\tExpected: 2\n\n\t- Glyph name: P\tContours detected: 192\tExpected: 1 or 2\n\n\t- Glyph name: Q\tContours detected: 148\tExpected: 2\n\n\t- Glyph name: R\tContours detected: 190\tExpected: 1 or 2\n\n\t- Glyph name: S\tContours detected: 190\tExpected: 1\n\n\t- Glyph name: T\tContours detected: 179\tExpected: 1\n\n\t- Glyph name: U\tContours detected: 185\tExpected: 1\n\n\t- Glyph name: V\tContours detected: 172\tExpected: 1\n\n\t- Glyph name: W\tContours detected: 105\tExpected: 1 or 2\n\n\t- Glyph name: X\tContours detected: 152\tExpected: 1\n\n\t- Glyph name: Y\tContours detected: 113\tExpected: 1\n\n\t- Glyph name: Z\tContours detected: 190\tExpected: 1\n\n\t- Glyph name: bracketleft\tContours detected: 85\tExpected: 1\n\n\t- Glyph name: backslash\tContours detected: 81\tExpected: 1\n\n\t- Glyph name: bracketright\tContours detected: 215\tExpected: 1\n\n\t- Glyph name: asciicircum\tContours detected: 43\tExpected: 1\n\n\t- Glyph name: underscore\tContours detected: 84\tExpected: 1\n\n\t- Glyph name: grave\tContours detected: 57\tExpected: 1\n\n\t- Glyph name: a\tContours detected: 136\tExpected: 2\n\n\t- Glyph name: b\tContours detected: 160\tExpected: 2\n\n\t- Glyph name: c\tContours detected: 142\tExpected: 1\n\n\t- Glyph name: d\tContours detected: 154\tExpected: 2\n\n\t- Glyph name: e\tContours detected: 113\tExpected: 2\n\n\t- Glyph name: f\tContours detected: 135\tExpected: 1\n\n\t- Glyph name: g\tContours detected: 196\tExpected: 2 or 3\n\n\t- Glyph name: h\tContours detected: 96\tExpected: 1\n\n\t- Glyph name: i\tContours detected: 129\tExpected: 2\n\n\t- Glyph name: j\tContours detected: 187\tExpected: 2\n\n\t- Glyph name: k\tContours detected: 106\tExpected: 1 or 2\n\n\t- Glyph name: l\tContours detected: 137\tExpected: 1\n\n\t- Glyph name: m\tContours detected: 184\tExpected: 1\n\n\t- Glyph name: n\tContours detected: 162\tExpected: 1\n\n\t- Glyph name: o\tContours detected: 180\tExpected: 2\n\n\t- Glyph name: p\tContours detected: 133\tExpected: 2\n\n\t- Glyph name: q\tContours detected: 142\tExpected: 2\n\n\t- Glyph name: r\tContours detected: 120\tExpected: 1\n\n\t- Glyph name: s\tContours detected: 105\tExpected: 1\n\n\t- Glyph name: t\tContours detected: 131\tExpected: 1\n\n\t- Glyph name: u\tContours detected: 110\tExpected: 1\n\n\t- Glyph name: v\tContours detected: 118\tExpected: 1\n\n\t- Glyph name: w\tContours detected: 175\tExpected: 1\n\n\t- Glyph name: x\tContours detected: 132\tExpected: 1\n\n\t- Glyph name: y\tContours detected: 126\tExpected: 1\n\n\t- Glyph name: z\tContours detected: 144\tExpected: 1\n\n\t- Glyph name: braceleft\tContours detected: 116\tExpected: 1\n\n\t- Glyph name: bar\tContours detected: 159\tExpected: 1\n\n\t- Glyph name: braceright\tContours detected: 107\tExpected: 1\n\n\t- Glyph name: asciitilde\tContours detected: 79\tExpected: 1\n\n\t- Glyph name: exclamdown\tContours detected: 97\tExpected: 2\n\n\t- Glyph name: cent\tContours detected: 93\tExpected: 1 or 2\n\n\t- Glyph name: sterling\tContours detected: 150\tExpected: 1 or 2\n\n\t- Glyph name: currency\tContours detected: 145\tExpected: 2\n\n\t- Glyph name: yen\tContours detected: 173\tExpected: 1 or 2\n\n\t- Glyph name: brokenbar\tContours detected: 101\tExpected: 2\n\n\t- Glyph name: section\tContours detected: 152\tExpected: 2\n\n\t- Glyph name: dieresis\tContours detected: 68\tExpected: 2\n\n\t- Glyph name: copyright\tContours detected: 150\tExpected: 3\n\n\t- Glyph name: ordfeminine\tContours detected: 36\tExpected: 2 or 3\n\n\t- Glyph name: guillemotleft\tContours detected: 118\tExpected: 2\n\n\t- Glyph name: logicalnot\tContours detected: 86\tExpected: 1\n\n\t- Glyph name: registered\tContours detected: 153\tExpected: 3 or 4\n\n\t- Glyph name: macron\tContours detected: 52\tExpected: 1\n\n\t- Glyph name: degree\tContours detected: 71\tExpected: 2\n\n\t- Glyph name: plusminus\tContours detected: 151\tExpected: 1 or 2\n\n\t- Glyph name: uni00B2\tContours detected: 66\tExpected: 1\n\n\t- Glyph name: uni00B3\tContours detected: 67\tExpected: 1\n\n\t- Glyph name: acute\tContours detected: 39\tExpected: 1\n\n\t- Glyph name: uni00B5\tContours detected: 153\tExpected: 1\n\n\t- Glyph name: paragraph\tContours detected: 185\tExpected: 1, 2 or 3\n\n\t- Glyph name: periodcentered\tContours detected: 39\tExpected: 1\n\n\t- Glyph name: cedilla\tContours detected: 31\tExpected: 1\n\n\t- Glyph name: uni00B9\tContours detected: 54\tExpected: 1\n\n\t- Glyph name: ordmasculine\tContours detected: 71\tExpected: 2 or 3\n\n\t- Glyph name: guillemotright\tContours detected: 122\tExpected: 2\n\n\t- Glyph name: onequarter\tContours detected: 172\tExpected: 3 or 4\n\n\t- Glyph name: onehalf\tContours detected: 192\tExpected: 3\n\n\t- Glyph name: threequarters\tContours detected: 185\tExpected: 3 or 4\n\n\t- Glyph name: questiondown\tContours detected: 120\tExpected: 2\n\n\t- Glyph name: Agrave\tContours detected: 191\tExpected: 3\n\n\t- Glyph name: Aacute\tContours detected: 188\tExpected: 3\n\n\t- Glyph name: Acircumflex\tContours detected: 182\tExpected: 3\n\n\t- Glyph name: Atilde\tContours detected: 200\tExpected: 3\n\n\t- Glyph name: Adieresis\tContours detected: 196\tExpected: 4\n\n\t- Glyph name: Aring\tContours detected: 170\tExpected: 3 or 4\n\n\t- Glyph name: AE\tContours detected: 275\tExpected: 2\n\n\t- Glyph name: Ccedilla\tContours detected: 169\tExpected: 1 or 2\n\n\t- Glyph name: Egrave\tContours detected: 200\tExpected: 2\n\n\t- Glyph name: Eacute\tContours detected: 197\tExpected: 2\n\n\t- Glyph name: Ecircumflex\tContours detected: 191\tExpected: 2\n\n\t- Glyph name: Edieresis\tContours detected: 205\tExpected: 3\n\n\t- Glyph name: Igrave\tContours detected: 170\tExpected: 2\n\n\t- Glyph name: Iacute\tContours detected: 167\tExpected: 2\n\n\t- Glyph name: Icircumflex\tContours detected: 161\tExpected: 2\n\n\t- Glyph name: Idieresis\tContours detected: 175\tExpected: 3\n\n\t- Glyph name: Eth\tContours detected: 184\tExpected: 2\n\n\t- Glyph name: Ntilde\tContours detected: 238\tExpected: 2\n\n\t- Glyph name: Ograve\tContours detected: 219\tExpected: 3\n\n\t- Glyph name: Oacute\tContours detected: 216\tExpected: 3\n\n\t- Glyph name: Ocircumflex\tContours detected: 210\tExpected: 3\n\n\t- Glyph name: Otilde\tContours detected: 228\tExpected: 3\n\n\t- Glyph name: Odieresis\tContours detected: 224\tExpected: 4\n\n\t- Glyph name: multiply\tContours detected: 112\tExpected: 1\n\n\t- Glyph name: Oslash\tContours detected: 151\tExpected: 2 or 3\n\n\t- Glyph name: Ugrave\tContours detected: 236\tExpected: 2\n\n\t- Glyph name: Uacute\tContours detected: 233\tExpected: 2\n\n\t- Glyph name: Ucircumflex\tContours detected: 227\tExpected: 2\n\n\t- Glyph name: Udieresis\tContours detected: 241\tExpected: 3\n\n\t- Glyph name: Yacute\tContours detected: 161\tExpected: 2\n\n\t- Glyph name: Thorn\tContours detected: 160\tExpected: 1 or 2\n\n\t- Glyph name: germandbls\tContours detected: 170\tExpected: 1\n\n\t- Glyph name: agrave\tContours detected: 193\tExpected: 3\n\n\t- Glyph name: aacute\tContours detected: 175\tExpected: 3\n\n\t- Glyph name: acircumflex\tContours detected: 181\tExpected: 3\n\n\t- Glyph name: atilde\tContours detected: 199\tExpected: 3\n\n\t- Glyph name: adieresis\tContours detected: 204\tExpected: 4\n\n\t- Glyph name: aring\tContours detected: 164\tExpected: 4\n\n\t- Glyph name: ae\tContours detected: 193\tExpected: 3\n\n\t- Glyph name: ccedilla\tContours detected: 123\tExpected: 1 or 2\n\n\t- Glyph name: egrave\tContours detected: 170\tExpected: 3\n\n\t- Glyph name: eacute\tContours detected: 152\tExpected: 3\n\n\t- Glyph name: ecircumflex\tContours detected: 158\tExpected: 3\n\n\t- Glyph name: edieresis\tContours detected: 181\tExpected: 4\n\n\t- Glyph name: igrave\tContours detected: 130\tExpected: 2\n\n\t- Glyph name: iacute\tContours detected: 112\tExpected: 2\n\n\t- Glyph name: icircumflex\tContours detected: 118\tExpected: 2\n\n\t- Glyph name: idieresis\tContours detected: 141\tExpected: 3\n\n\t- Glyph name: eth\tContours detected: 151\tExpected: 2\n\n\t- Glyph name: ntilde\tContours detected: 225\tExpected: 2\n\n\t- Glyph name: ograve\tContours detected: 237\tExpected: 3\n\n\t- Glyph name: oacute\tContours detected: 219\tExpected: 3\n\n\t- Glyph name: ocircumflex\tContours detected: 225\tExpected: 3\n\n\t- Glyph name: otilde\tContours detected: 243\tExpected: 3\n\n\t- Glyph name: odieresis\tContours detected: 248\tExpected: 4\n\n\t- Glyph name: divide\tContours detected: 116\tExpected: 3\n\n\t- Glyph name: oslash\tContours detected: 177\tExpected: 3\n\n\t- Glyph name: ugrave\tContours detected: 167\tExpected: 2\n\n\t- Glyph name: uacute\tContours detected: 149\tExpected: 2\n\n\t- Glyph name: ucircumflex\tContours detected: 155\tExpected: 2\n\n\t- Glyph name: udieresis\tContours detected: 178\tExpected: 3\n\n\t- Glyph name: yacute\tContours detected: 165\tExpected: 2\n\n\t- Glyph name: thorn\tContours detected: 130\tExpected: 2\n\n\t- Glyph name: ydieresis\tContours detected: 194\tExpected: 3\n\n\t- Glyph name: Amacron\tContours detected: 201\tExpected: 3\n\n\t- Glyph name: amacron\tContours detected: 188\tExpected: 3\n\n\t- Glyph name: Abreve\tContours detected: 171\tExpected: 3\n\n\t- Glyph name: abreve\tContours detected: 198\tExpected: 3\n\n\t- Glyph name: Aogonek\tContours detected: 122\tExpected: 2 or 3\n\n\t- Glyph name: aogonek\tContours detected: 146\tExpected: 2\n\n\t- Glyph name: Cacute\tContours detected: 205\tExpected: 2\n\n\t- Glyph name: cacute\tContours detected: 181\tExpected: 2\n\n\t- Glyph name: Ccircumflex\tContours detected: 199\tExpected: 2\n\n\t- Glyph name: ccircumflex\tContours detected: 187\tExpected: 2\n\n\t- Glyph name: Cdotaccent\tContours detected: 196\tExpected: 2\n\n\t- Glyph name: cdotaccent\tContours detected: 176\tExpected: 2\n\n\t- Glyph name: Ccaron\tContours detected: 202\tExpected: 2\n\n\t- Glyph name: ccaron\tContours detected: 216\tExpected: 2\n\n\t- Glyph name: Dcaron\tContours detected: 211\tExpected: 3\n\n\t- Glyph name: dcaron\tContours detected: 199\tExpected: 3\n\n\t- Glyph name: Dcroat\tContours detected: 231\tExpected: 2\n\n\t- Glyph name: dcroat\tContours detected: 148\tExpected: 2\n\n\t- Glyph name: Emacron\tContours detected: 210\tExpected: 2\n\n\t- Glyph name: emacron\tContours detected: 165\tExpected: 3\n\n\t- Glyph name: Ebreve\tContours detected: 180\tExpected: 2\n\n\t- Glyph name: ebreve\tContours detected: 175\tExpected: 3\n\n\t- Glyph name: Edotaccent\tContours detected: 188\tExpected: 2\n\n\t- Glyph name: edotaccent\tContours detected: 147\tExpected: 3\n\n\t- Glyph name: Eogonek\tContours detected: 163\tExpected: 1 or 2\n\n\t- Glyph name: eogonek\tContours detected: 161\tExpected: 2\n\n\t- Glyph name: Ecaron\tContours detected: 194\tExpected: 2\n\n\t- Glyph name: ecaron\tContours detected: 187\tExpected: 3\n\n\t- Glyph name: Gcircumflex\tContours detected: 197\tExpected: 2\n\n\t- Glyph name: gcircumflex\tContours detected: 241\tExpected: 3 or 4\n\n\t- Glyph name: Gbreve\tContours detected: 186\tExpected: 2\n\n\t- Glyph name: gbreve\tContours detected: 258\tExpected: 3 or 4\n\n\t- Glyph name: Gdotaccent\tContours detected: 194\tExpected: 2\n\n\t- Glyph name: gdotaccent\tContours detected: 230\tExpected: 3 or 4\n\n\t- Glyph name: uni0122\tContours detected: 182\tExpected: 2\n\n\t- Glyph name: uni0123\tContours detected: 236\tExpected: 3 or 4\n\n\t- Glyph name: Hcircumflex\tContours detected: 202\tExpected: 2\n\n\t- Glyph name: hcircumflex\tContours detected: 141\tExpected: 2\n\n\t- Glyph name: Hbar\tContours detected: 195\tExpected: 2\n\n\t- Glyph name: hbar\tContours detected: 137\tExpected: 1\n\n\t- Glyph name: Itilde\tContours detected: 179\tExpected: 2\n\n\t- Glyph name: itilde\tContours detected: 136\tExpected: 2\n\n\t- Glyph name: Imacron\tContours detected: 180\tExpected: 2\n\n\t- Glyph name: imacron\tContours detected: 125\tExpected: 2\n\n\t- Glyph name: Ibreve\tContours detected: 150\tExpected: 2\n\n\t- Glyph name: ibreve\tContours detected: 135\tExpected: 2\n\n\t- Glyph name: Iogonek\tContours detected: 50\tExpected: 1 or 2\n\n\t- Glyph name: iogonek\tContours detected: 129\tExpected: 2 or 3\n\n\t- Glyph name: Idotaccent\tContours detected: 158\tExpected: 2\n\n\t- Glyph name: dotlessi\tContours detected: 73\tExpected: 1\n\n\t- Glyph name: IJ\tContours detected: 207\tExpected: 1 or 2\n\n\t- Glyph name: ij\tContours detected: 316\tExpected: 3 or 4\n\n\t- Glyph name: Jcircumflex\tContours detected: 216\tExpected: 2\n\n\t- Glyph name: jcircumflex\tContours detected: 203\tExpected: 2\n\n\t- Glyph name: uni0136\tContours detected: 135\tExpected: 2 or 3\n\n\t- Glyph name: uni0137\tContours detected: 135\tExpected: 2 or 3\n\n\t- Glyph name: kgreenlandic\tContours detected: 125\tExpected: 1 or 2\n\n\t- Glyph name: Lacute\tContours detected: 182\tExpected: 2\n\n\t- Glyph name: lacute\tContours detected: 176\tExpected: 2\n\n\t- Glyph name: uni013B\tContours detected: 161\tExpected: 2\n\n\t- Glyph name: uni013C\tContours detected: 166\tExpected: 2\n\n\t- Glyph name: Lcaron\tContours detected: 179\tExpected: 2\n\n\t- Glyph name: lcaron\tContours detected: 182\tExpected: 2\n\n\t- Glyph name: Ldot\tContours detected: 156\tExpected: 2\n\n\t- Glyph name: ldot\tContours detected: 179\tExpected: 2\n\n\t- Glyph name: Lslash\tContours detected: 115\tExpected: 1\n\n\t- Glyph name: lslash\tContours detected: 103\tExpected: 1\n\n\t- Glyph name: Nacute\tContours detected: 226\tExpected: 2\n\n\t- Glyph name: nacute\tContours detected: 201\tExpected: 2\n\n\t- Glyph name: uni0145\tContours detected: 205\tExpected: 2\n\n\t- Glyph name: uni0146\tContours detected: 191\tExpected: 2\n\n\t- Glyph name: Ncaron\tContours detected: 223\tExpected: 2\n\n\t- Glyph name: ncaron\tContours detected: 236\tExpected: 2\n\n\t- Glyph name: napostrophe\tContours detected: 179\tExpected: 2\n\n\t- Glyph name: Eng\tContours detected: 206\tExpected: 1\n\n\t- Glyph name: eng\tContours detected: 231\tExpected: 1\n\n\t- Glyph name: Omacron\tContours detected: 229\tExpected: 3\n\n\t- Glyph name: omacron\tContours detected: 232\tExpected: 3\n\n\t- Glyph name: Obreve\tContours detected: 199\tExpected: 3\n\n\t- Glyph name: obreve\tContours detected: 242\tExpected: 3\n\n\t- Glyph name: Ohungarumlaut\tContours detected: 217\tExpected: 4\n\n\t- Glyph name: ohungarumlaut\tContours detected: 267\tExpected: 4\n\n\t- Glyph name: OE\tContours detected: 252\tExpected: 2\n\n\t- Glyph name: oe\tContours detected: 156\tExpected: 3\n\n\t- Glyph name: Racute\tContours detected: 238\tExpected: 3\n\n\t- Glyph name: racute\tContours detected: 159\tExpected: 2\n\n\t- Glyph name: uni0156\tContours detected: 217\tExpected: 3\n\n\t- Glyph name: uni0157\tContours detected: 149\tExpected: 2\n\n\t- Glyph name: Rcaron\tContours detected: 235\tExpected: 3\n\n\t- Glyph name: rcaron\tContours detected: 194\tExpected: 2\n\n\t- Glyph name: Sacute\tContours detected: 238\tExpected: 2\n\n\t- Glyph name: sacute\tContours detected: 144\tExpected: 2\n\n\t- Glyph name: Scircumflex\tContours detected: 232\tExpected: 2\n\n\t- Glyph name: scircumflex\tContours detected: 150\tExpected: 2\n\n\t- Glyph name: Scedilla\tContours detected: 187\tExpected: 1 or 2\n\n\t- Glyph name: scedilla\tContours detected: 154\tExpected: 1 or 2\n\n\t- Glyph name: Scaron\tContours detected: 235\tExpected: 2\n\n\t- Glyph name: scaron\tContours detected: 179\tExpected: 2\n\n\t- Glyph name: Tcaron\tContours detected: 224\tExpected: 2\n\n\t- Glyph name: tcaron\tContours detected: 176\tExpected: 2\n\n\t- Glyph name: Tbar\tContours detected: 132\tExpected: 1\n\n\t- Glyph name: tbar\tContours detected: 127\tExpected: 1\n\n\t- Glyph name: Utilde\tContours detected: 245\tExpected: 2\n\n\t- Glyph name: utilde\tContours detected: 173\tExpected: 2\n\n\t- Glyph name: Umacron\tContours detected: 246\tExpected: 2\n\n\t- Glyph name: umacron\tContours detected: 162\tExpected: 2\n\n\t- Glyph name: Ubreve\tContours detected: 216\tExpected: 2\n\n\t- Glyph name: ubreve\tContours detected: 172\tExpected: 2\n\n\t- Glyph name: Uring\tContours detected: 215\tExpected: 3\n\n\t- Glyph name: uring\tContours detected: 138\tExpected: 3\n\n\t- Glyph name: Uhungarumlaut\tContours detected: 234\tExpected: 3\n\n\t- Glyph name: uhungarumlaut\tContours detected: 197\tExpected: 3\n\n\t- Glyph name: Uogonek\tContours detected: 128\tExpected: 1\n\n\t- Glyph name: uogonek\tContours detected: 134\tExpected: 1\n\n\t- Glyph name: Wcircumflex\tContours detected: 147\tExpected: 2\n\n\t- Glyph name: wcircumflex\tContours detected: 220\tExpected: 2\n\n\t- Glyph name: Ycircumflex\tContours detected: 155\tExpected: 2\n\n\t- Glyph name: ycircumflex\tContours detected: 171\tExpected: 2\n\n\t- Glyph name: Ydieresis\tContours detected: 169\tExpected: 3\n\n\t- Glyph name: Zacute\tContours detected: 238\tExpected: 2\n\n\t- Glyph name: zacute\tContours detected: 183\tExpected: 2\n\n\t- Glyph name: Zdotaccent\tContours detected: 229\tExpected: 2\n\n\t- Glyph name: zdotaccent\tContours detected: 178\tExpected: 2\n\n\t- Glyph name: Zcaron\tContours detected: 235\tExpected: 2\n\n\t- Glyph name: zcaron\tContours detected: 218\tExpected: 2\n\n\t- Glyph name: longs\tContours detected: 134\tExpected: 1\n\n\t- Glyph name: florin\tContours detected: 136\tExpected: 1\n\n\t- Glyph name: AEacute\tContours detected: 323\tExpected: 3\n\n\t- Glyph name: aeacute\tContours detected: 232\tExpected: 4\n\n\t- Glyph name: Oslashacute\tContours detected: 199\tExpected: 4\n\n\t- Glyph name: oslashacute\tContours detected: 216\tExpected: 4\n\n\t- Glyph name: uni0218\tContours detected: 217\tExpected: 2\n\n\t- Glyph name: uni0219\tContours detected: 134\tExpected: 2\n\n\t- Glyph name: uni021A\tContours detected: 206\tExpected: 2\n\n\t- Glyph name: uni021B\tContours detected: 160\tExpected: 2\n\n\t- Glyph name: uni0237\tContours detected: 158\tExpected: 1\n\n\t- Glyph name: uni02BC\tContours detected: 29\tExpected: 1\n\n\t- Glyph name: circumflex\tContours detected: 45\tExpected: 1\n\n\t- Glyph name: caron\tContours detected: 74\tExpected: 1\n\n\t- Glyph name: breve\tContours detected: 62\tExpected: 1\n\n\t- Glyph name: dotaccent\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: ring\tContours detected: 28\tExpected: 2\n\n\t- Glyph name: ogonek\tContours detected: 46\tExpected: 1\n\n\t- Glyph name: tilde\tContours detected: 63\tExpected: 1\n\n\t- Glyph name: hungarumlaut\tContours detected: 87\tExpected: 2\n\n\t- Glyph name: gravecomb\tContours detected: 57\tExpected: 1\n\n\t- Glyph name: acutecomb\tContours detected: 39\tExpected: 1\n\n\t- Glyph name: uni0302\tContours detected: 45\tExpected: 1\n\n\t- Glyph name: tildecomb\tContours detected: 63\tExpected: 1\n\n\t- Glyph name: uni0304\tContours detected: 52\tExpected: 1\n\n\t- Glyph name: uni0306\tContours detected: 62\tExpected: 1\n\n\t- Glyph name: uni0307\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: uni0308\tContours detected: 68\tExpected: 2\n\n\t- Glyph name: uni030A\tContours detected: 28\tExpected: 2\n\n\t- Glyph name: uni030B\tContours detected: 87\tExpected: 2\n\n\t- Glyph name: uni030C\tContours detected: 74\tExpected: 1\n\n\t- Glyph name: uni0312\tContours detected: 40\tExpected: 1\n\n\t- Glyph name: uni0326\tContours detected: 29\tExpected: 1\n\n\t- Glyph name: uni0327\tContours detected: 31\tExpected: 1\n\n\t- Glyph name: uni0328\tContours detected: 46\tExpected: 1\n\n\t- Glyph name: uni0335\tContours detected: 60\tExpected: 1\n\n\t- Glyph name: uni0337\tContours detected: 50\tExpected: 1\n\n\t- Glyph name: uni0338\tContours detected: 67\tExpected: 1\n\n\t- Glyph name: uni0400\tContours detected: 200\tExpected: 2\n\n\t- Glyph name: uni0401\tContours detected: 217\tExpected: 3\n\n\t- Glyph name: uni0402\tContours detected: 168\tExpected: 1\n\n\t- Glyph name: uni0403\tContours detected: 169\tExpected: 2\n\n\t- Glyph name: uni0404\tContours detected: 124\tExpected: 1\n\n\t- Glyph name: uni0405\tContours detected: 190\tExpected: 1\n\n\t- Glyph name: uni0406\tContours detected: 119\tExpected: 1\n\n\t- Glyph name: uni0407\tContours detected: 187\tExpected: 3\n\n\t- Glyph name: uni0408\tContours detected: 174\tExpected: 1\n\n\t- Glyph name: uni0409\tContours detected: 196\tExpected: 2\n\n\t- Glyph name: uni040A\tContours detected: 258\tExpected: 2\n\n\t- Glyph name: uni040B\tContours detected: 182\tExpected: 1\n\n\t- Glyph name: uni040C\tContours detected: 203\tExpected: 2\n\n\t- Glyph name: uni040D\tContours detected: 287\tExpected: 2\n\n\t- Glyph name: uni040E\tContours detected: 210\tExpected: 2\n\n\t- Glyph name: uni040F\tContours detected: 201\tExpected: 1\n\n\t- Glyph name: uni0410\tContours detected: 140\tExpected: 2\n\n\t- Glyph name: uni0411\tContours detected: 137\tExpected: 2\n\n\t- Glyph name: uni0412\tContours detected: 144\tExpected: 3\n\n\t- Glyph name: uni0413\tContours detected: 121\tExpected: 1\n\n\t- Glyph name: uni0414\tContours detected: 253\tExpected: 2\n\n\t- Glyph name: uni0415\tContours detected: 149\tExpected: 1\n\n\t- Glyph name: uni0416\tContours detected: 334\tExpected: 1\n\n\t- Glyph name: uni0417\tContours detected: 201\tExpected: 1\n\n\t- Glyph name: uni0418\tContours detected: 236\tExpected: 1\n\n\t- Glyph name: uni0419\tContours detected: 291\tExpected: 2\n\n\t- Glyph name: uni041A\tContours detected: 155\tExpected: 1\n\n\t- Glyph name: uni041B\tContours detected: 228\tExpected: 1\n\n\t- Glyph name: uni041C\tContours detected: 181\tExpected: 1\n\n\t- Glyph name: uni041D\tContours detected: 160\tExpected: 1\n\n\t- Glyph name: uni041E\tContours detected: 168\tExpected: 2\n\n\t- Glyph name: uni041F\tContours detected: 187\tExpected: 1\n\n\t- Glyph name: uni0420\tContours detected: 192\tExpected: 1 or 2\n\n\t- Glyph name: uni0421\tContours detected: 157\tExpected: 1\n\n\t- Glyph name: uni0422\tContours detected: 179\tExpected: 1\n\n\t- Glyph name: uni0423\tContours detected: 155\tExpected: 1\n\n\t- Glyph name: uni0424\tContours detected: 226\tExpected: 3\n\n\t- Glyph name: uni0425\tContours detected: 152\tExpected: 1\n\n\t- Glyph name: uni0426\tContours detected: 179\tExpected: 1\n\n\t- Glyph name: uni0427\tContours detected: 193\tExpected: 1\n\n\t- Glyph name: uni0428\tContours detected: 238\tExpected: 1\n\n\t- Glyph name: uni0429\tContours detected: 212\tExpected: 1\n\n\t- Glyph name: uni042A\tContours detected: 151\tExpected: 2\n\n\t- Glyph name: uni042B\tContours detected: 200\tExpected: 3\n\n\t- Glyph name: uni042C\tContours detected: 102\tExpected: 2\n\n\t- Glyph name: uni042D\tContours detected: 199\tExpected: 1\n\n\t- Glyph name: uni042E\tContours detected: 177\tExpected: 2\n\n\t- Glyph name: uni042F\tContours detected: 156\tExpected: 2\n\n\t- Glyph name: uni0430\tContours detected: 136\tExpected: 2\n\n\t- Glyph name: uni0431\tContours detected: 187\tExpected: 2\n\n\t- Glyph name: uni0432\tContours detected: 122\tExpected: 3\n\n\t- Glyph name: uni0433\tContours detected: 106\tExpected: 1\n\n\t- Glyph name: uni0434\tContours detected: 173\tExpected: 2\n\n\t- Glyph name: uni0435\tContours detected: 113\tExpected: 2\n\n\t- Glyph name: uni0436\tContours detected: 209\tExpected: 1\n\n\t- Glyph name: uni0437\tContours detected: 138\tExpected: 1\n\n\t- Glyph name: uni0438\tContours detected: 119\tExpected: 1\n\n\t- Glyph name: uni0439\tContours detected: 192\tExpected: 2\n\n\t- Glyph name: uni043A\tContours detected: 145\tExpected: 1\n\n\t- Glyph name: uni043B\tContours detected: 143\tExpected: 1\n\n\t- Glyph name: uni043C\tContours detected: 149\tExpected: 1\n\n\t- Glyph name: uni043D\tContours detected: 141\tExpected: 1\n\n\t- Glyph name: uni043E\tContours detected: 180\tExpected: 2\n\n\t- Glyph name: uni043F\tContours detected: 160\tExpected: 1\n\n\t- Glyph name: uni0440\tContours detected: 133\tExpected: 2\n\n\t- Glyph name: uni0441\tContours detected: 142\tExpected: 1\n\n\t- Glyph name: uni0442\tContours detected: 139\tExpected: 1\n\n\t- Glyph name: uni0443\tContours detected: 97\tExpected: 1\n\n\t- Glyph name: uni0444\tContours detected: 175\tExpected: 3\n\n\t- Glyph name: uni0445\tContours detected: 132\tExpected: 1\n\n\t- Glyph name: uni0446\tContours detected: 149\tExpected: 1\n\n\t- Glyph name: uni0447\tContours detected: 163\tExpected: 1\n\n\t- Glyph name: uni0448\tContours detected: 195\tExpected: 1\n\n\t- Glyph name: uni0449\tContours detected: 169\tExpected: 1\n\n\t- Glyph name: uni044A\tContours detected: 170\tExpected: 2\n\n\t- Glyph name: uni044B\tContours detected: 164\tExpected: 3\n\n\t- Glyph name: uni044C\tContours detected: 69\tExpected: 2\n\n\t- Glyph name: uni044D\tContours detected: 127\tExpected: 1\n\n\t- Glyph name: uni044E\tContours detected: 175\tExpected: 2\n\n\t- Glyph name: uni044F\tContours detected: 119\tExpected: 2\n\n\t- Glyph name: uni0450\tContours detected: 170\tExpected: 3\n\n\t- Glyph name: uni0451\tContours detected: 181\tExpected: 4\n\n\t- Glyph name: uni0452\tContours detected: 118\tExpected: 1\n\n\t- Glyph name: uni0453\tContours detected: 145\tExpected: 2\n\n\t- Glyph name: uni0454\tContours detected: 133\tExpected: 1\n\n\t- Glyph name: uni0455\tContours detected: 105\tExpected: 1\n\n\t- Glyph name: uni0456\tContours detected: 129\tExpected: 2\n\n\t- Glyph name: uni0457\tContours detected: 141\tExpected: 3\n\n\t- Glyph name: uni0458\tContours detected: 187\tExpected: 2\n\n\t- Glyph name: uni0459\tContours detected: 193\tExpected: 2\n\n\t- Glyph name: uni045A\tContours detected: 159\tExpected: 2\n\n\t- Glyph name: uni045B\tContours detected: 150\tExpected: 1\n\n\t- Glyph name: uni045C\tContours detected: 184\tExpected: 2\n\n\t- Glyph name: uni045D\tContours detected: 176\tExpected: 2\n\n\t- Glyph name: uni045E\tContours detected: 170\tExpected: 2\n\n\t- Glyph name: uni045F\tContours detected: 155\tExpected: 1 or 2\n\n\t- Glyph name: uni0462\tContours detected: 154\tExpected: 2\n\n\t- Glyph name: uni0463\tContours detected: 131\tExpected: 2\n\n\t- Glyph name: uni046A\tContours detected: 279\tExpected: 2\n\n\t- Glyph name: uni046B\tContours detected: 233\tExpected: 2\n\n\t- Glyph name: uni0472\tContours detected: 178\tExpected: 3\n\n\t- Glyph name: uni0473\tContours detected: 101\tExpected: 3\n\n\t- Glyph name: uni0474\tContours detected: 135\tExpected: 1\n\n\t- Glyph name: uni0475\tContours detected: 123\tExpected: 1\n\n\t- Glyph name: uni0490\tContours detected: 121\tExpected: 1\n\n\t- Glyph name: uni0491\tContours detected: 92\tExpected: 1\n\n\t- Glyph name: uni0492\tContours detected: 177\tExpected: 1\n\n\t- Glyph name: uni0493\tContours detected: 110\tExpected: 1\n\n\t- Glyph name: uni0494\tContours detected: 93\tExpected: 1\n\n\t- Glyph name: uni0495\tContours detected: 178\tExpected: 1\n\n\t- Glyph name: uni0496\tContours detected: 301\tExpected: 1 or 2\n\n\t- Glyph name: uni0497\tContours detected: 202\tExpected: 1 or 2\n\n\t- Glyph name: uni0498\tContours detected: 182\tExpected: 1 or 2\n\n\t- Glyph name: uni0499\tContours detected: 133\tExpected: 1 or 2\n\n\t- Glyph name: uni049A\tContours detected: 174\tExpected: 1 or 2\n\n\t- Glyph name: uni049B\tContours detected: 147\tExpected: 1 or 2\n\n\t- Glyph name: uni049C\tContours detected: 166\tExpected: 1\n\n\t- Glyph name: uni049D\tContours detected: 130\tExpected: 1\n\n\t- Glyph name: uni04A0\tContours detected: 175\tExpected: 1\n\n\t- Glyph name: uni04A1\tContours detected: 169\tExpected: 1\n\n\t- Glyph name: uni04A2\tContours detected: 149\tExpected: 1 or 2\n\n\t- Glyph name: uni04A3\tContours detected: 148\tExpected: 1 or 2\n\n\t- Glyph name: uni04A4\tContours detected: 223\tExpected: 1\n\n\t- Glyph name: uni04A5\tContours detected: 125\tExpected: 1\n\n\t- Glyph name: uni04AA\tContours detected: 136\tExpected: 1 or 2\n\n\t- Glyph name: uni04AB\tContours detected: 117\tExpected: 1 or 2\n\n\t- Glyph name: Ustraitcy\tContours detected: 173\tExpected: 1\n\n\t- Glyph name: ustraitcy\tContours detected: 119\tExpected: 1\n\n\t- Glyph name: Ustraitstrokecy\tContours detected: 144\tExpected: 1\n\n\t- Glyph name: ustraitstrokecy\tContours detected: 167\tExpected: 1\n\n\t- Glyph name: uni04B6\tContours detected: 173\tExpected: 1 or 2\n\n\t- Glyph name: uni04B7\tContours detected: 174\tExpected: 1 or 2\n\n\t- Glyph name: uni04B8\tContours detected: 205\tExpected: 1\n\n\t- Glyph name: uni04B9\tContours detected: 169\tExpected: 1\n\n\t- Glyph name: uni04BA\tContours detected: 155\tExpected: 1\n\n\t- Glyph name: uni04BB\tContours detected: 96\tExpected: 1\n\n\t- Glyph name: uni04C0\tContours detected: 119\tExpected: 1\n\n\t- Glyph name: uni04C1\tContours detected: 389\tExpected: 2\n\n\t- Glyph name: uni04C2\tContours detected: 282\tExpected: 2\n\n\t- Glyph name: uni04CB\tContours detected: 152\tExpected: 1 or 2\n\n\t- Glyph name: uni04CC\tContours detected: 131\tExpected: 1 or 2\n\n\t- Glyph name: uni04CF\tContours detected: 137\tExpected: 1\n\n\t- Glyph name: uni04D0\tContours detected: 195\tExpected: 3\n\n\t- Glyph name: uni04D1\tContours detected: 209\tExpected: 3\n\n\t- Glyph name: uni04D2\tContours detected: 208\tExpected: 4\n\n\t- Glyph name: uni04D3\tContours detected: 204\tExpected: 4\n\n\t- Glyph name: uni04D4\tContours detected: 275\tExpected: 2\n\n\t- Glyph name: uni04D5\tContours detected: 193\tExpected: 3\n\n\t- Glyph name: uni04D6\tContours detected: 204\tExpected: 2\n\n\t- Glyph name: uni04D7\tContours detected: 186\tExpected: 3\n\n\t- Glyph name: uni04D8\tContours detected: 145\tExpected: 2\n\n\t- Glyph name: uni04D9\tContours detected: 149\tExpected: 2\n\n\t- Glyph name: uni04DC\tContours detected: 402\tExpected: 3\n\n\t- Glyph name: uni04DD\tContours detected: 277\tExpected: 3\n\n\t- Glyph name: uni04DE\tContours detected: 269\tExpected: 3\n\n\t- Glyph name: uni04DF\tContours detected: 206\tExpected: 3\n\n\t- Glyph name: uni04E2\tContours detected: 288\tExpected: 2\n\n\t- Glyph name: uni04E3\tContours detected: 171\tExpected: 2\n\n\t- Glyph name: uni04E4\tContours detected: 304\tExpected: 3\n\n\t- Glyph name: uni04E5\tContours detected: 187\tExpected: 3\n\n\t- Glyph name: uni04E6\tContours detected: 236\tExpected: 4\n\n\t- Glyph name: uni04E7\tContours detected: 248\tExpected: 4\n\n\t- Glyph name: uni04E8\tContours detected: 187\tExpected: 3\n\n\t- Glyph name: uni04E9\tContours detected: 101\tExpected: 3\n\n\t- Glyph name: uni04EE\tContours detected: 207\tExpected: 2\n\n\t- Glyph name: uni04EF\tContours detected: 149\tExpected: 2\n\n\t- Glyph name: uni04F0\tContours detected: 223\tExpected: 3\n\n\t- Glyph name: uni04F1\tContours detected: 165\tExpected: 3\n\n\t- Glyph name: uni04F2\tContours detected: 242\tExpected: 3\n\n\t- Glyph name: uni04F3\tContours detected: 184\tExpected: 3\n\n\t- Glyph name: uni04F4\tContours detected: 261\tExpected: 3\n\n\t- Glyph name: uni04F5\tContours detected: 231\tExpected: 3\n\n\t- Glyph name: uni04F6\tContours detected: 177\tExpected: 1 or 2\n\n\t- Glyph name: uni04F7\tContours detected: 122\tExpected: 1 or 2\n\n\t- Glyph name: uni04F8\tContours detected: 268\tExpected: 5\n\n\t- Glyph name: uni04F9\tContours detected: 232\tExpected: 5\n\n\t- Glyph name: uni051A\tContours detected: 148\tExpected: 2\n\n\t- Glyph name: uni051B\tContours detected: 142\tExpected: 2\n\n\t- Glyph name: uni051C\tContours detected: 105\tExpected: 1\n\n\t- Glyph name: uni051D\tContours detected: 175\tExpected: 1\n\n\t- Glyph name: uni0524\tContours detected: 220\tExpected: 1\n\n\t- Glyph name: uni0525\tContours detected: 181\tExpected: 1\n\n\t- Glyph name: Wgrave\tContours detected: 156\tExpected: 2\n\n\t- Glyph name: wgrave\tContours detected: 232\tExpected: 2\n\n\t- Glyph name: Wacute\tContours detected: 153\tExpected: 2\n\n\t- Glyph name: wacute\tContours detected: 214\tExpected: 2\n\n\t- Glyph name: Wdieresis\tContours detected: 161\tExpected: 3\n\n\t- Glyph name: wdieresis\tContours detected: 243\tExpected: 3\n\n\t- Glyph name: uni1E9E\tContours detected: 130\tExpected: 1\n\n\t- Glyph name: Ygrave\tContours detected: 164\tExpected: 2\n\n\t- Glyph name: ygrave\tContours detected: 183\tExpected: 2\n\n\t- Glyph name: endash\tContours detected: 72\tExpected: 1\n\n\t- Glyph name: emdash\tContours detected: 113\tExpected: 1\n\n\t- Glyph name: quoteleft\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: quoteright\tContours detected: 55\tExpected: 1\n\n\t- Glyph name: quotesinglbase\tContours detected: 62\tExpected: 1\n\n\t- Glyph name: quotedblleft\tContours detected: 79\tExpected: 2\n\n\t- Glyph name: quotedblright\tContours detected: 94\tExpected: 2\n\n\t- Glyph name: quotedblbase\tContours detected: 78\tExpected: 2\n\n\t- Glyph name: dagger\tContours detected: 99\tExpected: 1 or 2\n\n\t- Glyph name: daggerdbl\tContours detected: 131\tExpected: 1 or 3\n\n\t- Glyph name: bullet\tContours detected: 48\tExpected: 1\n\n\t- Glyph name: ellipsis\tContours detected: 116\tExpected: 3\n\n\t- Glyph name: perthousand\tContours detected: 184\tExpected: 6 or 7\n\n\t- Glyph name: guilsinglleft\tContours detected: 65\tExpected: 1\n\n\t- Glyph name: guilsinglright\tContours detected: 66\tExpected: 1\n\n\t- Glyph name: fraction\tContours detected: 72\tExpected: 1\n\n\t- Glyph name: uni2070\tContours detected: 72\tExpected: 2 or 3\n\n\t- Glyph name: uni2074\tContours detected: 46\tExpected: 1 or 2\n\n\t- Glyph name: uni2075\tContours detected: 77\tExpected: 1\n\n\t- Glyph name: uni2076\tContours detected: 42\tExpected: 2\n\n\t- Glyph name: uni2077\tContours detected: 76\tExpected: 1\n\n\t- Glyph name: uni2078\tContours detected: 74\tExpected: 3\n\n\t- Glyph name: uni2079\tContours detected: 69\tExpected: 2\n\n\t- Glyph name: uni207D\tContours detected: 47\tExpected: 1\n\n\t- Glyph name: uni207E\tContours detected: 51\tExpected: 1\n\n\t- Glyph name: uni2080\tContours detected: 72\tExpected: 2 or 3\n\n\t- Glyph name: uni2081\tContours detected: 54\tExpected: 1\n\n\t- Glyph name: uni2082\tContours detected: 66\tExpected: 1\n\n\t- Glyph name: uni2083\tContours detected: 67\tExpected: 1\n\n\t- Glyph name: uni2084\tContours detected: 46\tExpected: 1 or 2\n\n\t- Glyph name: uni2085\tContours detected: 77\tExpected: 1\n\n\t- Glyph name: uni2086\tContours detected: 42\tExpected: 2\n\n\t- Glyph name: uni2087\tContours detected: 76\tExpected: 1\n\n\t- Glyph name: uni2088\tContours detected: 74\tExpected: 3\n\n\t- Glyph name: uni2089\tContours detected: 69\tExpected: 2\n\n\t- Glyph name: uni208D\tContours detected: 47\tExpected: 1\n\n\t- Glyph name: uni208E\tContours detected: 51\tExpected: 1\n\n\t- Glyph name: uni20AA\tContours detected: 284\tExpected: 2\n\n\t- Glyph name: Euro\tContours detected: 153\tExpected: 1 or 2\n\n\t- Glyph name: uni20AE\tContours detected: 183\tExpected: 1\n\n\t- Glyph name: uni20B4\tContours detected: 177\tExpected: 1 or 2\n\n\t- Glyph name: uni20B8\tContours detected: 155\tExpected: 2\n\n\t- Glyph name: uni20B9\tContours detected: 160\tExpected: 1\n\n\t- Glyph name: uni20BD\tContours detected: 139\tExpected: 2\n\n\t- Glyph name: uni2116\tContours detected: 281\tExpected: 3 or 4\n\n\t- Glyph name: trademark\tContours detected: 92\tExpected: 2\n\n\t- Glyph name: estimated\tContours detected: 160\tExpected: 2\n\n\t- Glyph name: uni2153\tContours detected: 193\tExpected: 3\n\n\t- Glyph name: uni2154\tContours detected: 205\tExpected: 1 or 3\n\n\t- Glyph name: oneeighth\tContours detected: 200\tExpected: 5\n\n\t- Glyph name: threeeighths\tContours detected: 213\tExpected: 5\n\n\t- Glyph name: fiveeighths\tContours detected: 223\tExpected: 5\n\n\t- Glyph name: seveneighths\tContours detected: 222\tExpected: 5\n\n\t- Glyph name: partialdiff\tContours detected: 123\tExpected: 2\n\n\t- Glyph name: uni2206\tContours detected: 117\tExpected: 2\n\n\t- Glyph name: product\tContours detected: 183\tExpected: 1\n\n\t- Glyph name: summation\tContours detected: 174\tExpected: 1\n\n\t- Glyph name: minus\tContours detected: 79\tExpected: 1\n\n\t- Glyph name: uni2215\tContours detected: 110\tExpected: 1\n\n\t- Glyph name: radical\tContours detected: 109\tExpected: 1\n\n\t- Glyph name: infinity\tContours detected: 124\tExpected: 3\n\n\t- Glyph name: integral\tContours detected: 73\tExpected: 1\n\n\t- Glyph name: approxequal\tContours detected: 97\tExpected: 2\n\n\t- Glyph name: notequal\tContours detected: 115\tExpected: 1\n\n\t- Glyph name: lessequal\tContours detected: 109\tExpected: 2\n\n\t- Glyph name: greaterequal\tContours detected: 116\tExpected: 2\n\n\t- Glyph name: lozenge\tContours detected: 114\tExpected: 2\n\n\t- Glyph name: fi\tContours detected: 168\tExpected: 1, 2 or 3\n\n\t- Glyph name: fl\tContours detected: 247\tExpected: 1 or 2\n\n\t- Glyph name: A\tContours detected: 140\tExpected: 2\n\n\t- Glyph name: AE\tContours detected: 275\tExpected: 2\n\n\t- Glyph name: AEacute\tContours detected: 323\tExpected: 3\n\n\t- Glyph name: Aacute\tContours detected: 188\tExpected: 3\n\n\t- Glyph name: Abreve\tContours detected: 171\tExpected: 3\n\n\t- Glyph name: Acircumflex\tContours detected: 182\tExpected: 3\n\n\t- Glyph name: Adieresis\tContours detected: 196\tExpected: 4\n\n\t- Glyph name: Agrave\tContours detected: 191\tExpected: 3\n\n\t- Glyph name: Amacron\tContours detected: 201\tExpected: 3\n\n\t- Glyph name: Aogonek\tContours detected: 122\tExpected: 2 or 3\n\n\t- Glyph name: Aring\tContours detected: 170\tExpected: 3 or 4\n\n\t- Glyph name: Atilde\tContours detected: 200\tExpected: 3\n\n\t- Glyph name: B\tContours detected: 144\tExpected: 2 or 3\n\n\t- Glyph name: C\tContours detected: 157\tExpected: 1\n\n\t- Glyph name: Cacute\tContours detected: 205\tExpected: 2\n\n\t- Glyph name: Ccaron\tContours detected: 202\tExpected: 2\n\n\t- Glyph name: Ccedilla\tContours detected: 169\tExpected: 1 or 2\n\n\t- Glyph name: Ccircumflex\tContours detected: 199\tExpected: 2\n\n\t- Glyph name: Cdotaccent\tContours detected: 196\tExpected: 2\n\n\t- Glyph name: D\tContours detected: 166\tExpected: 2\n\n\t- Glyph name: Dcaron\tContours detected: 211\tExpected: 3\n\n\t- Glyph name: Dcroat\tContours detected: 231\tExpected: 2\n\n\t- Glyph name: E\tContours detected: 149\tExpected: 1\n\n\t- Glyph name: Eacute\tContours detected: 197\tExpected: 2\n\n\t- Glyph name: Ebreve\tContours detected: 180\tExpected: 2\n\n\t- Glyph name: Ecaron\tContours detected: 194\tExpected: 2\n\n\t- Glyph name: Ecircumflex\tContours detected: 191\tExpected: 2\n\n\t- Glyph name: Edieresis\tContours detected: 205\tExpected: 3\n\n\t- Glyph name: Edotaccent\tContours detected: 188\tExpected: 2\n\n\t- Glyph name: Egrave\tContours detected: 200\tExpected: 2\n\n\t- Glyph name: Emacron\tContours detected: 210\tExpected: 2\n\n\t- Glyph name: Eng\tContours detected: 206\tExpected: 1\n\n\t- Glyph name: Eogonek\tContours detected: 163\tExpected: 1 or 2\n\n\t- Glyph name: Eth\tContours detected: 184\tExpected: 2\n\n\t- Glyph name: Euro\tContours detected: 153\tExpected: 1 or 2\n\n\t- Glyph name: F\tContours detected: 146\tExpected: 1\n\n\t- Glyph name: G\tContours detected: 155\tExpected: 1\n\n\t- Glyph name: Gbreve\tContours detected: 186\tExpected: 2\n\n\t- Glyph name: Gcircumflex\tContours detected: 197\tExpected: 2\n\n\t- Glyph name: Gdotaccent\tContours detected: 194\tExpected: 2\n\n\t- Glyph name: H\tContours detected: 160\tExpected: 1\n\n\t- Glyph name: Hbar\tContours detected: 195\tExpected: 2\n\n\t- Glyph name: Hcircumflex\tContours detected: 202\tExpected: 2\n\n\t- Glyph name: I\tContours detected: 119\tExpected: 1\n\n\t- Glyph name: IJ\tContours detected: 207\tExpected: 1 or 2\n\n\t- Glyph name: Iacute\tContours detected: 167\tExpected: 2\n\n\t- Glyph name: Ibreve\tContours detected: 150\tExpected: 2\n\n\t- Glyph name: Icircumflex\tContours detected: 161\tExpected: 2\n\n\t- Glyph name: Idieresis\tContours detected: 175\tExpected: 3\n\n\t- Glyph name: Idotaccent\tContours detected: 158\tExpected: 2\n\n\t- Glyph name: Igrave\tContours detected: 170\tExpected: 2\n\n\t- Glyph name: Imacron\tContours detected: 180\tExpected: 2\n\n\t- Glyph name: Iogonek\tContours detected: 50\tExpected: 1 or 2\n\n\t- Glyph name: Itilde\tContours detected: 179\tExpected: 2\n\n\t- Glyph name: J\tContours detected: 174\tExpected: 1\n\n\t- Glyph name: Jcircumflex\tContours detected: 216\tExpected: 2\n\n\t- Glyph name: K\tContours detected: 108\tExpected: 1 or 2\n\n\t- Glyph name: L\tContours detected: 134\tExpected: 1\n\n\t- Glyph name: Lacute\tContours detected: 182\tExpected: 2\n\n\t- Glyph name: Lcaron\tContours detected: 179\tExpected: 2\n\n\t- Glyph name: Ldot\tContours detected: 156\tExpected: 2\n\n\t- Glyph name: Lslash\tContours detected: 115\tExpected: 1\n\n\t- Glyph name: M\tContours detected: 181\tExpected: 1\n\n\t- Glyph name: N\tContours detected: 178\tExpected: 1\n\n\t- Glyph name: Nacute\tContours detected: 226\tExpected: 2\n\n\t- Glyph name: Ncaron\tContours detected: 223\tExpected: 2\n\n\t- Glyph name: Ntilde\tContours detected: 238\tExpected: 2\n\n\t- Glyph name: O\tContours detected: 168\tExpected: 2\n\n\t- Glyph name: OE\tContours detected: 252\tExpected: 2\n\n\t- Glyph name: Oacute\tContours detected: 216\tExpected: 3\n\n\t- Glyph name: Ocircumflex\tContours detected: 210\tExpected: 3\n\n\t- Glyph name: Odieresis\tContours detected: 224\tExpected: 4\n\n\t- Glyph name: Ograve\tContours detected: 219\tExpected: 3\n\n\t- Glyph name: Ohungarumlaut\tContours detected: 217\tExpected: 4\n\n\t- Glyph name: Omacron\tContours detected: 229\tExpected: 3\n\n\t- Glyph name: Oslash\tContours detected: 151\tExpected: 2 or 3\n\n\t- Glyph name: Oslashacute\tContours detected: 199\tExpected: 4\n\n\t- Glyph name: Otilde\tContours detected: 228\tExpected: 3\n\n\t- Glyph name: P\tContours detected: 192\tExpected: 1 or 2\n\n\t- Glyph name: Q\tContours detected: 148\tExpected: 2\n\n\t- Glyph name: R\tContours detected: 190\tExpected: 1 or 2\n\n\t- Glyph name: Racute\tContours detected: 238\tExpected: 3\n\n\t- Glyph name: Rcaron\tContours detected: 235\tExpected: 3\n\n\t- Glyph name: S\tContours detected: 190\tExpected: 1\n\n\t- Glyph name: Sacute\tContours detected: 238\tExpected: 2\n\n\t- Glyph name: Scaron\tContours detected: 235\tExpected: 2\n\n\t- Glyph name: Scircumflex\tContours detected: 232\tExpected: 2\n\n\t- Glyph name: T\tContours detected: 179\tExpected: 1\n\n\t- Glyph name: Tbar\tContours detected: 132\tExpected: 1\n\n\t- Glyph name: Tcaron\tContours detected: 224\tExpected: 2\n\n\t- Glyph name: Thorn\tContours detected: 160\tExpected: 1 or 2\n\n\t- Glyph name: U\tContours detected: 185\tExpected: 1\n\n\t- Glyph name: Uacute\tContours detected: 233\tExpected: 2\n\n\t- Glyph name: Ubreve\tContours detected: 216\tExpected: 2\n\n\t- Glyph name: Ucircumflex\tContours detected: 227\tExpected: 2\n\n\t- Glyph name: Udieresis\tContours detected: 241\tExpected: 3\n\n\t- Glyph name: Ugrave\tContours detected: 236\tExpected: 2\n\n\t- Glyph name: Uhungarumlaut\tContours detected: 234\tExpected: 3\n\n\t- Glyph name: Umacron\tContours detected: 246\tExpected: 2\n\n\t- Glyph name: Uogonek\tContours detected: 128\tExpected: 1\n\n\t- Glyph name: Uring\tContours detected: 215\tExpected: 3\n\n\t- Glyph name: Utilde\tContours detected: 245\tExpected: 2\n\n\t- Glyph name: V\tContours detected: 172\tExpected: 1\n\n\t- Glyph name: W\tContours detected: 105\tExpected: 1 or 2\n\n\t- Glyph name: Wacute\tContours detected: 153\tExpected: 2\n\n\t- Glyph name: Wcircumflex\tContours detected: 147\tExpected: 2\n\n\t- Glyph name: Wdieresis\tContours detected: 161\tExpected: 3\n\n\t- Glyph name: Wgrave\tContours detected: 156\tExpected: 2\n\n\t- Glyph name: X\tContours detected: 152\tExpected: 1\n\n\t- Glyph name: Y\tContours detected: 113\tExpected: 1\n\n\t- Glyph name: Yacute\tContours detected: 161\tExpected: 2\n\n\t- Glyph name: Ycircumflex\tContours detected: 155\tExpected: 2\n\n\t- Glyph name: Ydieresis\tContours detected: 169\tExpected: 3\n\n\t- Glyph name: Ygrave\tContours detected: 164\tExpected: 2\n\n\t- Glyph name: Z\tContours detected: 190\tExpected: 1\n\n\t- Glyph name: Zacute\tContours detected: 238\tExpected: 2\n\n\t- Glyph name: Zcaron\tContours detected: 235\tExpected: 2\n\n\t- Glyph name: Zdotaccent\tContours detected: 229\tExpected: 2\n\n\t- Glyph name: a\tContours detected: 136\tExpected: 2\n\n\t- Glyph name: aacute\tContours detected: 175\tExpected: 3\n\n\t- Glyph name: abreve\tContours detected: 198\tExpected: 3\n\n\t- Glyph name: acircumflex\tContours detected: 181\tExpected: 3\n\n\t- Glyph name: acute\tContours detected: 39\tExpected: 1\n\n\t- Glyph name: adieresis\tContours detected: 204\tExpected: 4\n\n\t- Glyph name: ae\tContours detected: 193\tExpected: 3\n\n\t- Glyph name: aeacute\tContours detected: 232\tExpected: 4\n\n\t- Glyph name: agrave\tContours detected: 193\tExpected: 3\n\n\t- Glyph name: amacron\tContours detected: 188\tExpected: 3\n\n\t- Glyph name: ampersand\tContours detected: 120\tExpected: 1, 2 or 3\n\n\t- Glyph name: aogonek\tContours detected: 146\tExpected: 2\n\n\t- Glyph name: approxequal\tContours detected: 97\tExpected: 2\n\n\t- Glyph name: aring\tContours detected: 164\tExpected: 4\n\n\t- Glyph name: asciicircum\tContours detected: 43\tExpected: 1\n\n\t- Glyph name: asciitilde\tContours detected: 79\tExpected: 1\n\n\t- Glyph name: asterisk\tContours detected: 78\tExpected: 1 or 4\n\n\t- Glyph name: at\tContours detected: 231\tExpected: 2\n\n\t- Glyph name: atilde\tContours detected: 199\tExpected: 3\n\n\t- Glyph name: b\tContours detected: 160\tExpected: 2\n\n\t- Glyph name: backslash\tContours detected: 81\tExpected: 1\n\n\t- Glyph name: bar\tContours detected: 159\tExpected: 1\n\n\t- Glyph name: braceleft\tContours detected: 116\tExpected: 1\n\n\t- Glyph name: braceright\tContours detected: 107\tExpected: 1\n\n\t- Glyph name: bracketleft\tContours detected: 85\tExpected: 1\n\n\t- Glyph name: bracketright\tContours detected: 215\tExpected: 1\n\n\t- Glyph name: breve\tContours detected: 62\tExpected: 1\n\n\t- Glyph name: brokenbar\tContours detected: 101\tExpected: 2\n\n\t- Glyph name: bullet\tContours detected: 48\tExpected: 1\n\n\t- Glyph name: c\tContours detected: 142\tExpected: 1\n\n\t- Glyph name: cacute\tContours detected: 181\tExpected: 2\n\n\t- Glyph name: caron\tContours detected: 74\tExpected: 1\n\n\t- Glyph name: ccaron\tContours detected: 216\tExpected: 2\n\n\t- Glyph name: ccedilla\tContours detected: 123\tExpected: 1 or 2\n\n\t- Glyph name: ccircumflex\tContours detected: 187\tExpected: 2\n\n\t- Glyph name: cdotaccent\tContours detected: 176\tExpected: 2\n\n\t- Glyph name: cedilla\tContours detected: 31\tExpected: 1\n\n\t- Glyph name: cent\tContours detected: 93\tExpected: 1 or 2\n\n\t- Glyph name: circumflex\tContours detected: 45\tExpected: 1\n\n\t- Glyph name: colon\tContours detected: 52\tExpected: 2\n\n\t- Glyph name: comma\tContours detected: 35\tExpected: 1\n\n\t- Glyph name: copyright\tContours detected: 150\tExpected: 3\n\n\t- Glyph name: currency\tContours detected: 145\tExpected: 2\n\n\t- Glyph name: d\tContours detected: 154\tExpected: 2\n\n\t- Glyph name: dagger\tContours detected: 99\tExpected: 1 or 2\n\n\t- Glyph name: daggerdbl\tContours detected: 131\tExpected: 1 or 3\n\n\t- Glyph name: dcaron\tContours detected: 199\tExpected: 3\n\n\t- Glyph name: dcroat\tContours detected: 148\tExpected: 2\n\n\t- Glyph name: degree\tContours detected: 71\tExpected: 2\n\n\t- Glyph name: dieresis\tContours detected: 68\tExpected: 2\n\n\t- Glyph name: divide\tContours detected: 116\tExpected: 3\n\n\t- Glyph name: dollar\tContours detected: 225\tExpected: 1, 3 or 5\n\n\t- Glyph name: dotaccent\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: dotlessi\tContours detected: 73\tExpected: 1\n\n\t- Glyph name: e\tContours detected: 113\tExpected: 2\n\n\t- Glyph name: eacute\tContours detected: 152\tExpected: 3\n\n\t- Glyph name: ebreve\tContours detected: 175\tExpected: 3\n\n\t- Glyph name: ecaron\tContours detected: 187\tExpected: 3\n\n\t- Glyph name: ecircumflex\tContours detected: 158\tExpected: 3\n\n\t- Glyph name: edieresis\tContours detected: 181\tExpected: 4\n\n\t- Glyph name: edotaccent\tContours detected: 147\tExpected: 3\n\n\t- Glyph name: egrave\tContours detected: 170\tExpected: 3\n\n\t- Glyph name: eight\tContours detected: 146\tExpected: 3\n\n\t- Glyph name: ellipsis\tContours detected: 116\tExpected: 3\n\n\t- Glyph name: emacron\tContours detected: 165\tExpected: 3\n\n\t- Glyph name: emdash\tContours detected: 113\tExpected: 1\n\n\t- Glyph name: endash\tContours detected: 72\tExpected: 1\n\n\t- Glyph name: eng\tContours detected: 231\tExpected: 1\n\n\t- Glyph name: eogonek\tContours detected: 161\tExpected: 2\n\n\t- Glyph name: equal\tContours detected: 76\tExpected: 2\n\n\t- Glyph name: estimated\tContours detected: 160\tExpected: 2\n\n\t- Glyph name: eth\tContours detected: 151\tExpected: 2\n\n\t- Glyph name: exclam\tContours detected: 102\tExpected: 2\n\n\t- Glyph name: exclamdown\tContours detected: 97\tExpected: 2\n\n\t- Glyph name: f\tContours detected: 135\tExpected: 1\n\n\t- Glyph name: fi\tContours detected: 168\tExpected: 3\n\n\t- Glyph name: five\tContours detected: 153\tExpected: 1\n\n\t- Glyph name: fiveeighths\tContours detected: 223\tExpected: 5\n\n\t- Glyph name: fl\tContours detected: 247\tExpected: 2\n\n\t- Glyph name: four\tContours detected: 112\tExpected: 1 or 2\n\n\t- Glyph name: fraction\tContours detected: 72\tExpected: 1\n\n\t- Glyph name: g\tContours detected: 196\tExpected: 2 or 3\n\n\t- Glyph name: gbreve\tContours detected: 258\tExpected: 3 or 4\n\n\t- Glyph name: gcircumflex\tContours detected: 241\tExpected: 3 or 4\n\n\t- Glyph name: gdotaccent\tContours detected: 230\tExpected: 3 or 4\n\n\t- Glyph name: germandbls\tContours detected: 170\tExpected: 1\n\n\t- Glyph name: grave\tContours detected: 57\tExpected: 1\n\n\t- Glyph name: greater\tContours detected: 84\tExpected: 1\n\n\t- Glyph name: greaterequal\tContours detected: 116\tExpected: 2\n\n\t- Glyph name: guillemotleft\tContours detected: 118\tExpected: 2\n\n\t- Glyph name: guillemotright\tContours detected: 122\tExpected: 2\n\n\t- Glyph name: guilsinglleft\tContours detected: 65\tExpected: 1\n\n\t- Glyph name: guilsinglright\tContours detected: 66\tExpected: 1\n\n\t- Glyph name: h\tContours detected: 96\tExpected: 1\n\n\t- Glyph name: hbar\tContours detected: 137\tExpected: 1\n\n\t- Glyph name: hcircumflex\tContours detected: 141\tExpected: 2\n\n\t- Glyph name: hungarumlaut\tContours detected: 87\tExpected: 2\n\n\t- Glyph name: hyphen\tContours detected: 92\tExpected: 1\n\n\t- Glyph name: i\tContours detected: 129\tExpected: 2\n\n\t- Glyph name: iacute\tContours detected: 112\tExpected: 2\n\n\t- Glyph name: ibreve\tContours detected: 135\tExpected: 2\n\n\t- Glyph name: icircumflex\tContours detected: 118\tExpected: 2\n\n\t- Glyph name: idieresis\tContours detected: 141\tExpected: 3\n\n\t- Glyph name: igrave\tContours detected: 130\tExpected: 2\n\n\t- Glyph name: ij\tContours detected: 316\tExpected: 3 or 4\n\n\t- Glyph name: imacron\tContours detected: 125\tExpected: 2\n\n\t- Glyph name: infinity\tContours detected: 124\tExpected: 3\n\n\t- Glyph name: integral\tContours detected: 73\tExpected: 1\n\n\t- Glyph name: iogonek\tContours detected: 129\tExpected: 2 or 3\n\n\t- Glyph name: itilde\tContours detected: 136\tExpected: 2\n\n\t- Glyph name: j\tContours detected: 187\tExpected: 2\n\n\t- Glyph name: jcircumflex\tContours detected: 203\tExpected: 2\n\n\t- Glyph name: k\tContours detected: 106\tExpected: 1 or 2\n\n\t- Glyph name: kgreenlandic\tContours detected: 125\tExpected: 1 or 2\n\n\t- Glyph name: l\tContours detected: 137\tExpected: 1\n\n\t- Glyph name: lacute\tContours detected: 176\tExpected: 2\n\n\t- Glyph name: lcaron\tContours detected: 182\tExpected: 2\n\n\t- Glyph name: ldot\tContours detected: 179\tExpected: 2\n\n\t- Glyph name: less\tContours detected: 107\tExpected: 1\n\n\t- Glyph name: lessequal\tContours detected: 109\tExpected: 2\n\n\t- Glyph name: logicalnot\tContours detected: 86\tExpected: 1\n\n\t- Glyph name: longs\tContours detected: 134\tExpected: 1\n\n\t- Glyph name: lozenge\tContours detected: 114\tExpected: 2\n\n\t- Glyph name: lslash\tContours detected: 103\tExpected: 1\n\n\t- Glyph name: m\tContours detected: 184\tExpected: 1\n\n\t- Glyph name: macron\tContours detected: 52\tExpected: 1\n\n\t- Glyph name: minus\tContours detected: 79\tExpected: 1\n\n\t- Glyph name: multiply\tContours detected: 112\tExpected: 1\n\n\t- Glyph name: n\tContours detected: 162\tExpected: 1\n\n\t- Glyph name: nacute\tContours detected: 201\tExpected: 2\n\n\t- Glyph name: napostrophe\tContours detected: 179\tExpected: 2\n\n\t- Glyph name: ncaron\tContours detected: 236\tExpected: 2\n\n\t- Glyph name: nine\tContours detected: 156\tExpected: 1 or 2\n\n\t- Glyph name: notequal\tContours detected: 115\tExpected: 1\n\n\t- Glyph name: ntilde\tContours detected: 225\tExpected: 2\n\n\t- Glyph name: numbersign\tContours detected: 154\tExpected: 2\n\n\t- Glyph name: o\tContours detected: 180\tExpected: 2\n\n\t- Glyph name: oacute\tContours detected: 219\tExpected: 3\n\n\t- Glyph name: ocircumflex\tContours detected: 225\tExpected: 3\n\n\t- Glyph name: odieresis\tContours detected: 248\tExpected: 4\n\n\t- Glyph name: oe\tContours detected: 156\tExpected: 3\n\n\t- Glyph name: ogonek\tContours detected: 46\tExpected: 1\n\n\t- Glyph name: ograve\tContours detected: 237\tExpected: 3\n\n\t- Glyph name: ohungarumlaut\tContours detected: 267\tExpected: 4\n\n\t- Glyph name: omacron\tContours detected: 232\tExpected: 3\n\n\t- Glyph name: one\tContours detected: 156\tExpected: 1\n\n\t- Glyph name: oneeighth\tContours detected: 200\tExpected: 5\n\n\t- Glyph name: onehalf\tContours detected: 192\tExpected: 3\n\n\t- Glyph name: onequarter\tContours detected: 172\tExpected: 3 or 4\n\n\t- Glyph name: ordfeminine\tContours detected: 36\tExpected: 2 or 3\n\n\t- Glyph name: ordmasculine\tContours detected: 71\tExpected: 2 or 3\n\n\t- Glyph name: oslash\tContours detected: 177\tExpected: 3\n\n\t- Glyph name: oslashacute\tContours detected: 216\tExpected: 4\n\n\t- Glyph name: otilde\tContours detected: 243\tExpected: 3\n\n\t- Glyph name: p\tContours detected: 133\tExpected: 2\n\n\t- Glyph name: paragraph\tContours detected: 185\tExpected: 1, 2 or 3\n\n\t- Glyph name: parenleft\tContours detected: 107\tExpected: 1\n\n\t- Glyph name: parenright\tContours detected: 123\tExpected: 1\n\n\t- Glyph name: partialdiff\tContours detected: 123\tExpected: 2\n\n\t- Glyph name: percent\tContours detected: 169\tExpected: 5\n\n\t- Glyph name: period\tContours detected: 21\tExpected: 1\n\n\t- Glyph name: periodcentered\tContours detected: 39\tExpected: 1\n\n\t- Glyph name: perthousand\tContours detected: 184\tExpected: 6 or 7\n\n\t- Glyph name: plus\tContours detected: 88\tExpected: 1\n\n\t- Glyph name: plusminus\tContours detected: 151\tExpected: 1 or 2\n\n\t- Glyph name: product\tContours detected: 183\tExpected: 1\n\n\t- Glyph name: q\tContours detected: 142\tExpected: 2\n\n\t- Glyph name: question\tContours detected: 146\tExpected: 2\n\n\t- Glyph name: questiondown\tContours detected: 120\tExpected: 2\n\n\t- Glyph name: quotedbl\tContours detected: 100\tExpected: 2\n\n\t- Glyph name: quotedblbase\tContours detected: 78\tExpected: 2\n\n\t- Glyph name: quotedblleft\tContours detected: 79\tExpected: 2\n\n\t- Glyph name: quotedblright\tContours detected: 94\tExpected: 2\n\n\t- Glyph name: quoteleft\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: quoteright\tContours detected: 55\tExpected: 1\n\n\t- Glyph name: quotesinglbase\tContours detected: 62\tExpected: 1\n\n\t- Glyph name: quotesingle\tContours detected: 48\tExpected: 1\n\n\t- Glyph name: r\tContours detected: 120\tExpected: 1\n\n\t- Glyph name: racute\tContours detected: 159\tExpected: 2\n\n\t- Glyph name: radical\tContours detected: 109\tExpected: 1\n\n\t- Glyph name: rcaron\tContours detected: 194\tExpected: 2\n\n\t- Glyph name: registered\tContours detected: 153\tExpected: 3 or 4\n\n\t- Glyph name: ring\tContours detected: 28\tExpected: 2\n\n\t- Glyph name: s\tContours detected: 105\tExpected: 1\n\n\t- Glyph name: sacute\tContours detected: 144\tExpected: 2\n\n\t- Glyph name: scaron\tContours detected: 179\tExpected: 2\n\n\t- Glyph name: scircumflex\tContours detected: 150\tExpected: 2\n\n\t- Glyph name: section\tContours detected: 152\tExpected: 2\n\n\t- Glyph name: semicolon\tContours detected: 69\tExpected: 2\n\n\t- Glyph name: seven\tContours detected: 144\tExpected: 1\n\n\t- Glyph name: seveneighths\tContours detected: 222\tExpected: 5\n\n\t- Glyph name: six\tContours detected: 128\tExpected: 1 or 2\n\n\t- Glyph name: slash\tContours detected: 110\tExpected: 1\n\n\t- Glyph name: sterling\tContours detected: 150\tExpected: 1 or 2\n\n\t- Glyph name: summation\tContours detected: 174\tExpected: 1\n\n\t- Glyph name: t\tContours detected: 131\tExpected: 1\n\n\t- Glyph name: tbar\tContours detected: 127\tExpected: 1\n\n\t- Glyph name: tcaron\tContours detected: 176\tExpected: 2\n\n\t- Glyph name: thorn\tContours detected: 130\tExpected: 2\n\n\t- Glyph name: three\tContours detected: 226\tExpected: 1\n\n\t- Glyph name: threeeighths\tContours detected: 213\tExpected: 5\n\n\t- Glyph name: threequarters\tContours detected: 185\tExpected: 3 or 4\n\n\t- Glyph name: tilde\tContours detected: 63\tExpected: 1\n\n\t- Glyph name: trademark\tContours detected: 92\tExpected: 2\n\n\t- Glyph name: two\tContours detected: 183\tExpected: 1\n\n\t- Glyph name: u\tContours detected: 110\tExpected: 1\n\n\t- Glyph name: uacute\tContours detected: 149\tExpected: 2\n\n\t- Glyph name: ubreve\tContours detected: 172\tExpected: 2\n\n\t- Glyph name: ucircumflex\tContours detected: 155\tExpected: 2\n\n\t- Glyph name: udieresis\tContours detected: 178\tExpected: 3\n\n\t- Glyph name: ugrave\tContours detected: 167\tExpected: 2\n\n\t- Glyph name: uhungarumlaut\tContours detected: 197\tExpected: 3\n\n\t- Glyph name: umacron\tContours detected: 162\tExpected: 2\n\n\t- Glyph name: underscore\tContours detected: 84\tExpected: 1\n\n\t- Glyph name: uni00B5\tContours detected: 153\tExpected: 1\n\n\t- Glyph name: uni0122\tContours detected: 182\tExpected: 2\n\n\t- Glyph name: uni0123\tContours detected: 236\tExpected: 3 or 4\n\n\t- Glyph name: uni0136\tContours detected: 135\tExpected: 2 or 3\n\n\t- Glyph name: uni0137\tContours detected: 135\tExpected: 2 or 3\n\n\t- Glyph name: uni013B\tContours detected: 161\tExpected: 2\n\n\t- Glyph name: uni013C\tContours detected: 166\tExpected: 2\n\n\t- Glyph name: uni0145\tContours detected: 205\tExpected: 2\n\n\t- Glyph name: uni0146\tContours detected: 191\tExpected: 2\n\n\t- Glyph name: uni0156\tContours detected: 217\tExpected: 3\n\n\t- Glyph name: uni0157\tContours detected: 149\tExpected: 2\n\n\t- Glyph name: uni0218\tContours detected: 217\tExpected: 2\n\n\t- Glyph name: uni0219\tContours detected: 134\tExpected: 2\n\n\t- Glyph name: uni021A\tContours detected: 206\tExpected: 2\n\n\t- Glyph name: uni021B\tContours detected: 160\tExpected: 2\n\n\t- Glyph name: uni0237\tContours detected: 158\tExpected: 1\n\n\t- Glyph name: uni02BC\tContours detected: 29\tExpected: 1\n\n\t- Glyph name: uni0302\tContours detected: 45\tExpected: 1\n\n\t- Glyph name: uni0304\tContours detected: 52\tExpected: 1\n\n\t- Glyph name: uni0306\tContours detected: 62\tExpected: 1\n\n\t- Glyph name: uni0307\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: uni0308\tContours detected: 68\tExpected: 2\n\n\t- Glyph name: uni030A\tContours detected: 28\tExpected: 2\n\n\t- Glyph name: uni030B\tContours detected: 87\tExpected: 2\n\n\t- Glyph name: uni030C\tContours detected: 74\tExpected: 1\n\n\t- Glyph name: uni0312\tContours detected: 40\tExpected: 1\n\n\t- Glyph name: uni0326\tContours detected: 29\tExpected: 1\n\n\t- Glyph name: uni0327\tContours detected: 31\tExpected: 1\n\n\t- Glyph name: uni0328\tContours detected: 46\tExpected: 1\n\n\t- Glyph name: uni0335\tContours detected: 60\tExpected: 1\n\n\t- Glyph name: uni0337\tContours detected: 50\tExpected: 1\n\n\t- Glyph name: uni0338\tContours detected: 67\tExpected: 1\n\n\t- Glyph name: uni0400\tContours detected: 200\tExpected: 2\n\n\t- Glyph name: uni0401\tContours detected: 217\tExpected: 3\n\n\t- Glyph name: uni0402\tContours detected: 168\tExpected: 1\n\n\t- Glyph name: uni0403\tContours detected: 169\tExpected: 2\n\n\t- Glyph name: uni0404\tContours detected: 124\tExpected: 1\n\n\t- Glyph name: uni0405\tContours detected: 190\tExpected: 1\n\n\t- Glyph name: uni0406\tContours detected: 119\tExpected: 1\n\n\t- Glyph name: uni0407\tContours detected: 187\tExpected: 3\n\n\t- Glyph name: uni0408\tContours detected: 174\tExpected: 1\n\n\t- Glyph name: uni0409\tContours detected: 196\tExpected: 2\n\n\t- Glyph name: uni040A\tContours detected: 258\tExpected: 2\n\n\t- Glyph name: uni040B\tContours detected: 182\tExpected: 1\n\n\t- Glyph name: uni040C\tContours detected: 203\tExpected: 2\n\n\t- Glyph name: uni040D\tContours detected: 287\tExpected: 2\n\n\t- Glyph name: uni040E\tContours detected: 210\tExpected: 2\n\n\t- Glyph name: uni040F\tContours detected: 201\tExpected: 1\n\n\t- Glyph name: uni0410\tContours detected: 140\tExpected: 2\n\n\t- Glyph name: uni0411\tContours detected: 137\tExpected: 2\n\n\t- Glyph name: uni0412\tContours detected: 144\tExpected: 3\n\n\t- Glyph name: uni0413\tContours detected: 121\tExpected: 1\n\n\t- Glyph name: uni0414\tContours detected: 253\tExpected: 2\n\n\t- Glyph name: uni0415\tContours detected: 149\tExpected: 1\n\n\t- Glyph name: uni0416\tContours detected: 334\tExpected: 1\n\n\t- Glyph name: uni0417\tContours detected: 201\tExpected: 1\n\n\t- Glyph name: uni0418\tContours detected: 236\tExpected: 1\n\n\t- Glyph name: uni0419\tContours detected: 291\tExpected: 2\n\n\t- Glyph name: uni041A\tContours detected: 155\tExpected: 1\n\n\t- Glyph name: uni041B\tContours detected: 228\tExpected: 1\n\n\t- Glyph name: uni041C\tContours detected: 181\tExpected: 1\n\n\t- Glyph name: uni041D\tContours detected: 160\tExpected: 1\n\n\t- Glyph name: uni041E\tContours detected: 168\tExpected: 2\n\n\t- Glyph name: uni041F\tContours detected: 187\tExpected: 1\n\n\t- Glyph name: uni0420\tContours detected: 192\tExpected: 1 or 2\n\n\t- Glyph name: uni0421\tContours detected: 157\tExpected: 1\n\n\t- Glyph name: uni0422\tContours detected: 179\tExpected: 1\n\n\t- Glyph name: uni0423\tContours detected: 155\tExpected: 1\n\n\t- Glyph name: uni0424\tContours detected: 226\tExpected: 3\n\n\t- Glyph name: uni0425\tContours detected: 152\tExpected: 1\n\n\t- Glyph name: uni0426\tContours detected: 179\tExpected: 1\n\n\t- Glyph name: uni0427\tContours detected: 193\tExpected: 1\n\n\t- Glyph name: uni0428\tContours detected: 238\tExpected: 1\n\n\t- Glyph name: uni0429\tContours detected: 212\tExpected: 1\n\n\t- Glyph name: uni042A\tContours detected: 151\tExpected: 2\n\n\t- Glyph name: uni042B\tContours detected: 200\tExpected: 3\n\n\t- Glyph name: uni042C\tContours detected: 102\tExpected: 2\n\n\t- Glyph name: uni042D\tContours detected: 199\tExpected: 1\n\n\t- Glyph name: uni042E\tContours detected: 177\tExpected: 2\n\n\t- Glyph name: uni042F\tContours detected: 156\tExpected: 2\n\n\t- Glyph name: uni0430\tContours detected: 136\tExpected: 2\n\n\t- Glyph name: uni0431\tContours detected: 187\tExpected: 2\n\n\t- Glyph name: uni0432\tContours detected: 122\tExpected: 3\n\n\t- Glyph name: uni0433\tContours detected: 106\tExpected: 1\n\n\t- Glyph name: uni0434\tContours detected: 173\tExpected: 2\n\n\t- Glyph name: uni0435\tContours detected: 113\tExpected: 2\n\n\t- Glyph name: uni0436\tContours detected: 209\tExpected: 1\n\n\t- Glyph name: uni0437\tContours detected: 138\tExpected: 1\n\n\t- Glyph name: uni0438\tContours detected: 119\tExpected: 1\n\n\t- Glyph name: uni0439\tContours detected: 192\tExpected: 2\n\n\t- Glyph name: uni043A\tContours detected: 145\tExpected: 1\n\n\t- Glyph name: uni043B\tContours detected: 143\tExpected: 1\n\n\t- Glyph name: uni043C\tContours detected: 149\tExpected: 1\n\n\t- Glyph name: uni043D\tContours detected: 141\tExpected: 1\n\n\t- Glyph name: uni043E\tContours detected: 180\tExpected: 2\n\n\t- Glyph name: uni043F\tContours detected: 160\tExpected: 1\n\n\t- Glyph name: uni0440\tContours detected: 133\tExpected: 2\n\n\t- Glyph name: uni0441\tContours detected: 142\tExpected: 1\n\n\t- Glyph name: uni0442\tContours detected: 139\tExpected: 1\n\n\t- Glyph name: uni0443\tContours detected: 97\tExpected: 1\n\n\t- Glyph name: uni0444\tContours detected: 175\tExpected: 3\n\n\t- Glyph name: uni0445\tContours detected: 132\tExpected: 1\n\n\t- Glyph name: uni0446\tContours detected: 149\tExpected: 1\n\n\t- Glyph name: uni0447\tContours detected: 163\tExpected: 1\n\n\t- Glyph name: uni0448\tContours detected: 195\tExpected: 1\n\n\t- Glyph name: uni0449\tContours detected: 169\tExpected: 1\n\n\t- Glyph name: uni044A\tContours detected: 170\tExpected: 2\n\n\t- Glyph name: uni044B\tContours detected: 164\tExpected: 3\n\n\t- Glyph name: uni044C\tContours detected: 69\tExpected: 2\n\n\t- Glyph name: uni044D\tContours detected: 127\tExpected: 1\n\n\t- Glyph name: uni044E\tContours detected: 175\tExpected: 2\n\n\t- Glyph name: uni044F\tContours detected: 119\tExpected: 2\n\n\t- Glyph name: uni0450\tContours detected: 170\tExpected: 3\n\n\t- Glyph name: uni0451\tContours detected: 181\tExpected: 4\n\n\t- Glyph name: uni0452\tContours detected: 118\tExpected: 1\n\n\t- Glyph name: uni0453\tContours detected: 145\tExpected: 2\n\n\t- Glyph name: uni0454\tContours detected: 133\tExpected: 1\n\n\t- Glyph name: uni0455\tContours detected: 105\tExpected: 1\n\n\t- Glyph name: uni0456\tContours detected: 129\tExpected: 2\n\n\t- Glyph name: uni0457\tContours detected: 141\tExpected: 3\n\n\t- Glyph name: uni0458\tContours detected: 187\tExpected: 2\n\n\t- Glyph name: uni0459\tContours detected: 193\tExpected: 2\n\n\t- Glyph name: uni045A\tContours detected: 159\tExpected: 2\n\n\t- Glyph name: uni045B\tContours detected: 150\tExpected: 1\n\n\t- Glyph name: uni045C\tContours detected: 184\tExpected: 2\n\n\t- Glyph name: uni045D\tContours detected: 176\tExpected: 2\n\n\t- Glyph name: uni045E\tContours detected: 170\tExpected: 2\n\n\t- Glyph name: uni045F\tContours detected: 155\tExpected: 1 or 2\n\n\t- Glyph name: uni0462\tContours detected: 154\tExpected: 2\n\n\t- Glyph name: uni0463\tContours detected: 131\tExpected: 2\n\n\t- Glyph name: uni046A\tContours detected: 279\tExpected: 2\n\n\t- Glyph name: uni046B\tContours detected: 233\tExpected: 2\n\n\t- Glyph name: uni0472\tContours detected: 178\tExpected: 3\n\n\t- Glyph name: uni0473\tContours detected: 101\tExpected: 3\n\n\t- Glyph name: uni0474\tContours detected: 135\tExpected: 1\n\n\t- Glyph name: uni0475\tContours detected: 123\tExpected: 1\n\n\t- Glyph name: uni0490\tContours detected: 121\tExpected: 1\n\n\t- Glyph name: uni0491\tContours detected: 92\tExpected: 1\n\n\t- Glyph name: uni0492\tContours detected: 177\tExpected: 1\n\n\t- Glyph name: uni0493\tContours detected: 110\tExpected: 1\n\n\t- Glyph name: uni0494\tContours detected: 93\tExpected: 1\n\n\t- Glyph name: uni0495\tContours detected: 178\tExpected: 1\n\n\t- Glyph name: uni0496\tContours detected: 301\tExpected: 1 or 2\n\n\t- Glyph name: uni0497\tContours detected: 202\tExpected: 1 or 2\n\n\t- Glyph name: uni0498\tContours detected: 182\tExpected: 1 or 2\n\n\t- Glyph name: uni0499\tContours detected: 133\tExpected: 1 or 2\n\n\t- Glyph name: uni049A\tContours detected: 174\tExpected: 1 or 2\n\n\t- Glyph name: uni049B\tContours detected: 147\tExpected: 1 or 2\n\n\t- Glyph name: uni049C\tContours detected: 166\tExpected: 1\n\n\t- Glyph name: uni049D\tContours detected: 130\tExpected: 1\n\n\t- Glyph name: uni04A0\tContours detected: 175\tExpected: 1\n\n\t- Glyph name: uni04A1\tContours detected: 169\tExpected: 1\n\n\t- Glyph name: uni04A2\tContours detected: 149\tExpected: 1 or 2\n\n\t- Glyph name: uni04A3\tContours detected: 148\tExpected: 1 or 2\n\n\t- Glyph name: uni04A4\tContours detected: 223\tExpected: 1\n\n\t- Glyph name: uni04A5\tContours detected: 125\tExpected: 1\n\n\t- Glyph name: uni04AA\tContours detected: 136\tExpected: 1 or 2\n\n\t- Glyph name: uni04AB\tContours detected: 117\tExpected: 1 or 2\n\n\t- Glyph name: uni04B6\tContours detected: 173\tExpected: 1 or 2\n\n\t- Glyph name: uni04B7\tContours detected: 174\tExpected: 1 or 2\n\n\t- Glyph name: uni04B8\tContours detected: 205\tExpected: 1\n\n\t- Glyph name: uni04B9\tContours detected: 169\tExpected: 1\n\n\t- Glyph name: uni04BA\tContours detected: 155\tExpected: 1\n\n\t- Glyph name: uni04BB\tContours detected: 96\tExpected: 1\n\n\t- Glyph name: uni04C0\tContours detected: 119\tExpected: 1\n\n\t- Glyph name: uni04C1\tContours detected: 389\tExpected: 2\n\n\t- Glyph name: uni04C2\tContours detected: 282\tExpected: 2\n\n\t- Glyph name: uni04CB\tContours detected: 152\tExpected: 1 or 2\n\n\t- Glyph name: uni04CC\tContours detected: 131\tExpected: 1 or 2\n\n\t- Glyph name: uni04CF\tContours detected: 137\tExpected: 1\n\n\t- Glyph name: uni04D0\tContours detected: 195\tExpected: 3\n\n\t- Glyph name: uni04D1\tContours detected: 209\tExpected: 3\n\n\t- Glyph name: uni04D2\tContours detected: 208\tExpected: 4\n\n\t- Glyph name: uni04D3\tContours detected: 204\tExpected: 4\n\n\t- Glyph name: uni04D4\tContours detected: 275\tExpected: 2\n\n\t- Glyph name: uni04D5\tContours detected: 193\tExpected: 3\n\n\t- Glyph name: uni04D6\tContours detected: 204\tExpected: 2\n\n\t- Glyph name: uni04D7\tContours detected: 186\tExpected: 3\n\n\t- Glyph name: uni04D8\tContours detected: 145\tExpected: 2\n\n\t- Glyph name: uni04D9\tContours detected: 149\tExpected: 2\n\n\t- Glyph name: uni04DC\tContours detected: 402\tExpected: 3\n\n\t- Glyph name: uni04DD\tContours detected: 277\tExpected: 3\n\n\t- Glyph name: uni04DE\tContours detected: 269\tExpected: 3\n\n\t- Glyph name: uni04DF\tContours detected: 206\tExpected: 3\n\n\t- Glyph name: uni04E2\tContours detected: 288\tExpected: 2\n\n\t- Glyph name: uni04E3\tContours detected: 171\tExpected: 2\n\n\t- Glyph name: uni04E4\tContours detected: 304\tExpected: 3\n\n\t- Glyph name: uni04E5\tContours detected: 187\tExpected: 3\n\n\t- Glyph name: uni04E6\tContours detected: 236\tExpected: 4\n\n\t- Glyph name: uni04E7\tContours detected: 248\tExpected: 4\n\n\t- Glyph name: uni04E8\tContours detected: 187\tExpected: 3\n\n\t- Glyph name: uni04E9\tContours detected: 101\tExpected: 3\n\n\t- Glyph name: uni04EE\tContours detected: 207\tExpected: 2\n\n\t- Glyph name: uni04EF\tContours detected: 149\tExpected: 2\n\n\t- Glyph name: uni04F0\tContours detected: 223\tExpected: 3\n\n\t- Glyph name: uni04F1\tContours detected: 165\tExpected: 3\n\n\t- Glyph name: uni04F2\tContours detected: 242\tExpected: 3\n\n\t- Glyph name: uni04F3\tContours detected: 184\tExpected: 3\n\n\t- Glyph name: uni04F4\tContours detected: 261\tExpected: 3\n\n\t- Glyph name: uni04F5\tContours detected: 231\tExpected: 3\n\n\t- Glyph name: uni04F6\tContours detected: 177\tExpected: 1 or 2\n\n\t- Glyph name: uni04F7\tContours detected: 122\tExpected: 1 or 2\n\n\t- Glyph name: uni04F8\tContours detected: 268\tExpected: 5\n\n\t- Glyph name: uni04F9\tContours detected: 232\tExpected: 5\n\n\t- Glyph name: uni051A\tContours detected: 148\tExpected: 2\n\n\t- Glyph name: uni051B\tContours detected: 142\tExpected: 2\n\n\t- Glyph name: uni051C\tContours detected: 105\tExpected: 1\n\n\t- Glyph name: uni051D\tContours detected: 175\tExpected: 1\n\n\t- Glyph name: uni0524\tContours detected: 220\tExpected: 1\n\n\t- Glyph name: uni0525\tContours detected: 181\tExpected: 1\n\n\t- Glyph name: uni1E9E\tContours detected: 130\tExpected: 1\n\n\t- Glyph name: uni20AA\tContours detected: 284\tExpected: 2\n\n\t- Glyph name: uni20AE\tContours detected: 183\tExpected: 1\n\n\t- Glyph name: uni20B4\tContours detected: 177\tExpected: 1 or 2\n\n\t- Glyph name: uni20B8\tContours detected: 155\tExpected: 2\n\n\t- Glyph name: uni20B9\tContours detected: 160\tExpected: 1\n\n\t- Glyph name: uni20BD\tContours detected: 139\tExpected: 2\n\n\t- Glyph name: uni2116\tContours detected: 281\tExpected: 3 or 4\n\n\t- Glyph name: uni2206\tContours detected: 117\tExpected: 2\n\n\t- Glyph name: uni2215\tContours detected: 110\tExpected: 1\n\n\t- Glyph name: uogonek\tContours detected: 134\tExpected: 1\n\n\t- Glyph name: uring\tContours detected: 138\tExpected: 3\n\n\t- Glyph name: utilde\tContours detected: 173\tExpected: 2\n\n\t- Glyph name: v\tContours detected: 118\tExpected: 1\n\n\t- Glyph name: w\tContours detected: 175\tExpected: 1\n\n\t- Glyph name: wacute\tContours detected: 214\tExpected: 2\n\n\t- Glyph name: wcircumflex\tContours detected: 220\tExpected: 2\n\n\t- Glyph name: wdieresis\tContours detected: 243\tExpected: 3\n\n\t- Glyph name: wgrave\tContours detected: 232\tExpected: 2\n\n\t- Glyph name: x\tContours detected: 132\tExpected: 1\n\n\t- Glyph name: y\tContours detected: 126\tExpected: 1\n\n\t- Glyph name: yacute\tContours detected: 165\tExpected: 2\n\n\t- Glyph name: ycircumflex\tContours detected: 171\tExpected: 2\n\n\t- Glyph name: ydieresis\tContours detected: 194\tExpected: 3\n\n\t- Glyph name: yen\tContours detected: 173\tExpected: 1 or 2\n\n\t- Glyph name: ygrave\tContours detected: 183\tExpected: 2\n\n\t- Glyph name: z\tContours detected: 144\tExpected: 1\n\n\t- Glyph name: zacute\tContours detected: 183\tExpected: 2\n\n\t- Glyph name: zcaron\tContours detected: 218\tExpected: 2\n\n\t- Glyph name: zdotaccent\tContours detected: 178\tExpected: 2\n\n\t- Glyph name: zero\tContours detected: 178\tExpected: 2 or 3\n [code: contour-count]", "status": "WARN", "traceback": null}], "rationale": "\n Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only\n be constructured in a handful of ways. This means a glyph's contour count\n will only differ slightly amongst different fonts, e.g a 'g' could either\n be 2 or 3 contours, depending on whether its double story or single story.\n\n However, a quotedbl should have 2 contours, unless the font belongs\n to a display family.\n\n This check currently does not cover variable fonts because there's plenty\n of alternative ways of constructing glyphs with multiple outlines for each\n feature in a VarFont. The expected contour count data for this check is\n currently optimized for the typical construction of glyphs in static fonts.\n ", "result": "WARN"}, {"description": "Does the font contain a soft hyphen?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n The 'Soft Hyphen' character (codepoint 0x00AD) is used to mark\n a hyphenation possibility within a word in the absence of or\n overriding dictionary hyphenation.\n\n It is sometimes designed empty with no width (such as a control character),\n sometimes the same as the traditional hyphen, sometimes double encoded with\n the hyphen.\n\n That being said, it is recommended to not include it in the font at all,\n because discretionary hyphenation should be handled at the level of the\n shaping engine, not the font. Also, even if present, the software would\n not display that character.\n\n More discussion at:\n https://typedrawers.com/discussion/2046/special-dash-things-softhyphen-horizontalbar\n ", "result": "PASS"}, {"description": "Does the font contain chws and vchw features?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cjk_font", "status": "SKIP", "traceback": null}], "rationale": "\n The W3C recommends the addition of chws and vchw features to CJK fonts\n to enhance the spacing of glyphs in environments which do not fully support\n JLREQ layout rules.\n\n The chws_tool utility (https://github.com/googlefonts/chws_tool) can be used\n to add these features automatically.\n ", "result": "SKIP"}, {"description": "Ensure component transforms do not perform scaling or rotation.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No glyphs had components with scaling or rotation", "status": "PASS", "traceback": null}], "rationale": "\n Some families have glyphs which have been constructed by using\n transformed components e.g the 'u' being constructed from a flipped 'n'.\n\n From a designers point of view, this sounds like a win (less work).\n However, such approaches can lead to rasterization issues, such as\n having the 'u' not sitting on the baseline at certain sizes after\n running the font through ttfautohint.\n\n Other issues are outlines that end up reversed when only one dimension\n is flipped while the other isn't.\n\n As of July 2019, Marc Foley observed that ttfautohint assigns cvt values\n to transformed glyphs as if they are not transformed and the result is\n they render very badly, and that vttLib does not support flipped components.\n\n When building the font with fontmake, the problem can be fixed by adding\n this to the command line:\n\n --filter DecomposeTransformedComponentsFilter\n ", "result": "PASS"}, {"description": "Ensure no GPOS7 lookups are present.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has no GPOS7 lookups", "status": "PASS", "traceback": null}], "rationale": "\n Versions of fonttools >=4.14.0 (19 August 2020) perform an optimisation on\n chained contextual lookups, expressing GSUB6 as GSUB5 and GPOS8 and GPOS7\n where possible (when there are no suffixes/prefixes for all rules in\n the lookup).\n\n However, makeotf has never generated these lookup types and they are rare\n in practice. Perhaps before of this, Mac's CoreText shaper does not correctly\n interpret GPOS7, meaning that these lookups will be ignored by the shaper,\n and fonts containing these lookups will have unintended positioning errors.\n\n To fix this warning, rebuild the font with a recent version of fonttools.\n ", "result": "PASS", "severity": 9}, {"description": "Ensure that the font can be rasterized by FreeType.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font can be rasterized by FreeType.", "status": "PASS", "traceback": null}], "rationale": "\n Malformed fonts can cause FreeType to crash.\n ", "result": "PASS", "severity": 10}, {"description": "Font has the proper sfntVersion value?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has the correct sfntVersion value.", "status": "PASS", "traceback": null}], "rationale": "\n OpenType fonts that contain TrueType outlines should use the value of 0x00010000\n for the sfntVersion. OpenType fonts containing CFF data (version 1 or 2) should\n use 0x4F54544F ('OTTO', when re-interpreted as a Tag) for sfntVersion.\n\n Fonts with the wrong sfntVersion value are rejected by FreeType.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/otff#table-directory\n ", "result": "PASS", "severity": 10}, {"description": "Space and non-breaking space have the same width?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Space and non-breaking space have the same width.", "status": "PASS", "traceback": null}], "rationale": "\n If the space and nbspace glyphs have different widths, then Google Workspace\n has problems with the font.\n\n The nbspace is used to replace the space character in multiple situations in\n documents; such as the space before punctuation in languages that do that. It\n avoids the punctuation to be separated from the last word and go to next line.\n\n This is automatic substitution by the text editors, not by fonts. It's also used\n by designers in text composition practice to create nicely shaped paragraphs.\n If the space and the nbspace are not the same width, it breaks the text\n composition of documents.\n ", "result": "PASS"}, {"description": "Detect any interpolation issues in the font.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n When creating a variable font, the designer must make sure that corresponding\n paths have the same start points across masters, as well as that corresponding\n component shapes are placed in the same order within a glyph across masters.\n If this is not done, the glyph will not interpolate correctly.\n\n Here we check for the presence of potential interpolation errors using the\n fontTools.varLib.interpolatable module.\n ", "result": "SKIP", "severity": 4}, {"description": "Check math signs have the same width.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The most common width is 538 among a set of 2 math glyphs.\nThe following math glyphs have a different width, though:\n\nWidth = 594:\nplus\n\nWidth = 563:\nequal\n\nWidth = 564:\nlogicalnot\n\nWidth = 576:\nplusminus\n\nWidth = 639:\nmultiply\n\nWidth = 517:\ndivide\n\nWidth = 642:\nminus\n\nWidth = 551:\napproxequal, notequal\n\nWidth = 556:\nlessequal, greaterequal\n [code: width-outliers]", "status": "WARN", "traceback": null}], "rationale": "\n It is a common practice to have math signs sharing the same width\n (preferably the same width as tabular figures accross the entire font family).\n\n This probably comes from the will to avoid additional tabular math signs\n knowing that their design can easily share the same width.\n ", "result": "WARN"}, {"description": "Checking Vertical Metric Linegaps.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 sTypoLineGap and hhea lineGap are both 0.", "status": "PASS", "traceback": null}], "rationale": "\n The LineGap value is a space added to the line height created by the union\n of the (typo/hhea)Ascender and (typo/hhea)Descender. It is handled differently\n according to the environment.\n\n This leading value will be added above the text line in most desktop apps.\n It will be shared above and under in web browsers, and ignored in Windows\n if Use_Typo_Metrics is disabled.\n\n For better linespacing consistency across platforms,\n (typo/hhea)LineGap values must be 0.\n ", "result": "PASS"}, {"description": "Checking STAT table entries in static fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n Adobe feature syntax allows for the definition of a STAT table. Fonts built\n with a hand-coded STAT table in feature syntax may be built either as static\n or variable, but will end up with the same STAT table.\n\n This is a problem, because a STAT table which works on variable fonts\n will not be appropriate for static instances. The examples in the OpenType spec\n of non-variable fonts with a STAT table show that the table entries must be\n restricted to those entries which refer to the static font's position in\n the designspace. i.e. a Regular weight static should only have the following\n entry for the weight axis:\n\n \n \n \n \n\n However, if the STAT table intended for a variable font is compiled into a\n static, it will have many entries for this axis. In this case, Windows will\n read the first entry only, causing all instances to report themselves\n as \"Thin Condensed\".\n ", "result": "SKIP"}, {"description": "Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Lcaron is decomposed and therefore could not be checked. Please check manually. [code: decomposed-outline]", "status": "WARN", "traceback": null}, {"message": "dcaron is decomposed and therefore could not be checked. Please check manually. [code: decomposed-outline]", "status": "WARN", "traceback": null}, {"message": "lcaron is decomposed and therefore could not be checked. Please check manually. [code: decomposed-outline]", "status": "WARN", "traceback": null}, {"message": "tcaron is decomposed and therefore could not be checked. Please check manually. [code: decomposed-outline]", "status": "WARN", "traceback": null}, {"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Lcaron, dcaron, lcaron, tcaron should NOT be composed with quoteright\n or quotesingle or comma or caron(comb). It should be composed with a\n distinctive glyph which doesn't look like an apostrophe.\n\n Source:\n https://ilovetypography.com/2009/01/24/on-diacritics/\n http://diacritics.typo.cz/index.php?id=5\n https://www.typotheque.com/articles/lcaron\n ", "result": "WARN"}], "key": ["", null, null], "result": {"INFO": 2, "PASS": 23, "SKIP": 7, "WARN": 4}}, {"checks": [{"description": "Is the CFF subr/gsubr call depth > 10?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff", "status": "SKIP", "traceback": null}], "rationale": "\n Per \"The Type 2 Charstring Format, Technical Note #5177\",\n the \"Subr nesting, stack limit\" is 10.\n ", "result": "SKIP"}, {"description": "Is the CFF2 subr/gsubr call depth > 10?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff2", "status": "SKIP", "traceback": null}], "rationale": "\n Per \"The CFF2 CharString Format\", the \"Subr nesting, stack limit\" is 10.\n ", "result": "SKIP"}, {"description": "Does the font use deprecated CFF operators or operations?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff", "status": "SKIP", "traceback": null}], "rationale": "\n The 'dotsection' operator and the use of 'endchar' to build accented characters\n from the Adobe Standard Encoding Character Set (\"seac\") are deprecated in CFF.\n Adobe recommends repairing any fonts that use these, especially endchar-as-seac,\n because a rendering issue was discovered in Microsoft Word with a font that\n makes use of this operation. The check treats that usage as a FAIL.\n There are no known ill effects of using dotsection, so that check is a WARN.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"SKIP": 3}}, {"checks": [{"description": "Fonts have equal unicode encodings?", "key": ["", "", []], "logs": [{"message": "Fonts have equal unicode encodings.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Make sure all font files have the same version value.", "key": ["", "", []], "logs": [{"message": "All font files have the same version.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking unitsPerEm value is reasonable.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Filtered: Google Fonts has a stricter policy which is enforced by com.google.fonts/check/unitsperem_strict", "status": "SKIP", "traceback": null}], "rationale": "\n According to the OpenType spec:\n\n The value of unitsPerEm at the head table must be a value\n between 16 and 16384. Any value in this range is valid.\n\n In fonts that have TrueType outlines, a power of 2 is recommended\n as this allows performance optimizations in some rasterizers.\n\n But 1000 is a commonly used value. And 2000 may become\n increasingly more common on Variable Fonts.\n ", "result": "SKIP"}, {"description": "Checking font version fields (head and name table).", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All font version fields match.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking head.macStyle value.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "head macStyle ITALIC bit is properly set.", "status": "PASS", "traceback": null}, {"message": "head macStyle BOLD bit is properly set.", "status": "PASS", "traceback": null}], "rationale": "\n The values of the flags on the macStyle entry on the 'head' OpenType table\n that describe whether a font is bold and/or italic must be coherent with the\n actual style of the font as inferred by its filename.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3, "SKIP": 1}}, {"checks": [{"description": "Fonts have consistent PANOSE proportion?", "key": ["", "", []], "logs": [{"message": "Fonts have consistent PANOSE proportion.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Fonts have consistent PANOSE family type?", "key": ["", "", []], "logs": [{"message": "Fonts have consistent PANOSE family type.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check that OS/2.fsSelection bold & italic settings are unique for each NameID1", "key": ["", "", []], "logs": [{"message": "The OS/2.fsSelection bold & italic settings were unique within each compatible family group.", "status": "PASS", "traceback": null}], "rationale": "\n Per the OpenType spec: name ID 1 'is used in combination with Font Subfamily\n name (name ID 2), and should be shared among at most four fonts that differ\n only in weight or style.\n\n This four-way distinction should also be reflected in the OS/2.fsSelection\n field, using bits 0 and 5.\n ", "result": "PASS"}, {"description": "Check if OS/2 xAvgCharWidth is correct.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 xAvgCharWidth value is correct.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check if OS/2 fsSelection matches head macStyle bold and italic bits.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The OS/2.fsSelection and head.macStyle bold and italic settings match.", "status": "PASS", "traceback": null}], "rationale": "\n The bold and italic bits in OS/2.fsSelection must match the bold and italic\n bits in head.macStyle per the OpenType spec.\n ", "result": "PASS"}, {"description": "Check code page character ranges", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "At least one code page is defined.", "status": "PASS", "traceback": null}], "rationale": "\n At least some programs (such as Word and Sublime Text) under Windows 7\n do not recognize fonts unless code page bits are properly set on the\n ulCodePageRange1 (and/or ulCodePageRange2) fields of the OS/2 table.\n\n More specifically, the fonts are selectable in the font menu, but whichever\n Windows API these applications use considers them unsuitable for any\n character set, so anything set in these fonts is rendered with Arial as a\n fallback font.\n\n This check currently does not identify which code pages should be set.\n Auto-detecting coverage is not trivial since the OpenType specification\n leaves the interpretation of whether a given code page is \"functional\"\n or not open to the font developer to decide.\n\n So here we simply detect as a FAIL when a given font has no code page\n declared at all.\n ", "result": "PASS"}, {"description": "Checking OS/2 achVendID against configuration.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Add the `vendor_id` key to a `fontbakery.yaml` file on your font project directory to enable this check.\nYou'll also need to use the `--configuration` flag when invoking fontbakery.", "status": "SKIP", "traceback": null}], "rationale": "\n When a font project's Vendor ID is specified explicitly on FontBakery's\n configuration file, all binaries must have a matching vendor identifier\n value in the OS/2 table.\n ", "result": "SKIP"}, {"description": "Checking OS/2 fsSelection value.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 fsSelection REGULAR bit is properly set.", "status": "PASS", "traceback": null}, {"message": "OS/2 fsSelection ITALIC bit is properly set.", "status": "PASS", "traceback": null}, {"message": "OS/2 fsSelection BOLD bit is properly set.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 7, "SKIP": 1}}, {"checks": [{"description": "Fonts have consistent underline thickness?", "key": ["", "", []], "logs": [{"message": "Fonts have consistent underline thickness.", "status": "PASS", "traceback": null}], "rationale": "\n Dave C Lemon (Adobe Type Team) recommends setting the underline thickness to be\n consistent across the family.\n\n If thicknesses are not family consistent, words set on the same line which have\n different styles look strange.\n ", "result": "PASS"}, {"description": "Font has correct post table version?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has an acceptable post format 2.0 table version.", "status": "PASS", "traceback": null}], "rationale": "\n Format 2.5 of the 'post' table was deprecated in OpenType 1.3 and\n should not be used.\n\n According to Thomas Phinney, the possible problem with post format 3\n is that under the right combination of circumstances, one can generate\n PDF from a font with a post format 3 table, and not have accurate backing\n store for any text that has non-default glyphs for a given codepoint.\n\n It will look fine but not be searchable. This can affect Latin text with\n high-end typography, and some complex script writing systems, especially\n with higher-quality fonts. Those circumstances generally involve creating\n a PDF by first printing a PostScript stream to disk, and then creating a\n PDF from that stream without reference to the original source document.\n There are some workflows where this applies,but these are not common\n use cases.\n\n Apple recommends against use of post format version 4 as \"no longer\n necessary and should be avoided\". Please see the Apple TrueType reference\n documentation for additional details.\n\n https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6post.html\n\n Acceptable post format versions are 2 and 3 for TTF and OTF CFF2 builds,\n and post format 3 for CFF builds.\n ", "result": "PASS"}, {"description": "Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Value of post.italicAngle is 0.0 with style=\"Regular\".", "status": "PASS", "traceback": null}], "rationale": "\n The 'post' table italicAngle property should be a reasonable amount, likely\n not more than 30\u00b0. Note that in the OpenType specification, the value is\n negative for a rightward lean.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/post\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "Verify that each group of fonts with the same nameID 1 has maximum of 4 fonts.", "key": ["", "", []], "logs": [{"message": "There were no more than 4 fonts per family name.", "status": "PASS", "traceback": null}], "rationale": "\n Per the OpenType spec:\n\n 'The Font Family name [...] should be shared among at most four fonts that\n differ only in weight or style [...]'\n ", "result": "PASS"}, {"description": "Verify that family names in the name table are consistent across all fonts in the family. Checks Typographic Family name (nameID 16) if present, otherwise uses Font Family name (nameID 1)", "key": ["", "", []], "logs": [{"message": "Font family names are consistent across the family.", "status": "PASS", "traceback": null}], "rationale": "\n Per the OpenType spec:\n * \"...many existing applications that use this pair of names assume that a\n Font Family name is shared by at most four fonts that form a font\n style-linking group\"\n * \"For extended typographic families that includes fonts other than the\n four basic styles(regular, italic, bold, bold italic), it is strongly\n recommended that name IDs 16 and 17 be used in fonts to create an\n extended, typographic grouping.\"\n * \"If name ID 16 is absent, then name ID 1 is considered to be the\n typographic family name.\"\n\n https://learn.microsoft.com/en-us/typography/opentype/spec/name\n\n Fonts within a font family all must have consistent names\n in the Typographic Family name (nameID 16)\n or Font Family name (nameID 1), depending on which it uses.\n\n Inconsistent font/typographic family names across fonts in a family\n can result in unexpected behaviors, such as broken style linking.\n ", "result": "PASS"}, {"description": "Check name table for empty records.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No empty name table records found.", "status": "PASS", "traceback": null}], "rationale": "\n Check the name table for empty records,\n as this can cause problems in Adobe apps.\n ", "result": "PASS"}, {"description": "Description strings in the name table must not contain copyright info.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Description strings in the name table do not contain any copyright string.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking correctness of monospaced metadata.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font is not monospaced and all related metadata look good. [code: good]", "status": "PASS", "traceback": null}], "rationale": "\n There are various metadata in the OpenType spec to specify if a font is\n monospaced or not. If the font is not truly monospaced, then no monospaced\n metadata should be set (as sometimes they mistakenly are...)\n\n Requirements for monospace fonts:\n\n * post.isFixedPitch - \"Set to 0 if the font is proportionally spaced,\n non-zero if the font is not proportionally spaced (monospaced)\"\n (https://www.microsoft.com/typography/otspec/post.htm)\n\n * hhea.advanceWidthMax must be correct, meaning no glyph's width value\n is greater. (https://www.microsoft.com/typography/otspec/hhea.htm)\n\n * OS/2.panose.bProportion must be set to 9 (monospace) on latin text fonts.\n\n * OS/2.panose.bSpacing must be set to 3 (monospace) on latin hand written\n or latin symbol fonts.\n\n * Spec says: \"The PANOSE definition contains ten digits each of which currently\n describes up to sixteen variations. Windows uses bFamilyType, bSerifStyle\n and bProportion in the font mapper to determine family type. It also uses\n bProportion to determine if the font is monospaced.\"\n (https://www.microsoft.com/typography/otspec/os2.htm#pan\n https://monotypecom-test.monotype.de/services/pan2)\n\n * OS/2.xAvgCharWidth must be set accurately.\n \"OS/2.xAvgCharWidth is used when rendering monospaced fonts,\n at least by Windows GDI\"\n (http://typedrawers.com/discussion/comment/15397/#Comment_15397)\n\n Also we should report an error for glyphs not of average width.\n\n\n Please also note:\n\n Thomas Phinney told us that a few years ago (as of December 2019), if you gave\n a font a monospace flag in Panose, Microsoft Word would ignore the actual\n advance widths and treat it as monospaced.\n\n Source: https://typedrawers.com/discussion/comment/45140/#Comment_45140\n ", "result": "PASS"}, {"description": "Does full font name begin with the font family name?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Full font name begins with the font family name.", "status": "PASS", "traceback": null}], "rationale": "\n The FULL_FONT_NAME entry in the \u2018name\u2019 table should start with the same string\n as the Family Name (FONT_FAMILY_NAME, TYPOGRAPHIC_FAMILY_NAME or\n WWS_FAMILY_NAME).\n\n If the Family Name is not included as the first part of the Full Font Name, and\n the user embeds the font in a document using a Microsoft Office app, the app\n will fail to render the font when it opens the document again.\n\n NOTE: Up until version 1.5, the OpenType spec included the following exception\n in the definition of Full Font Name:\n\n \"An exception to the [above] definition of Full font name is for Microsoft\n platform strings for CFF OpenType fonts: in this case, the Full font name\n string must be identical to the PostScript FontName in the CFF Name INDEX.\"\n\n https://docs.microsoft.com/en-us/typography/opentype/otspec150/name#name-ids\n ", "result": "PASS"}, {"description": "PostScript name follows OpenType specification requirements?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "PostScript name follows requirements. [code: psname-ok]", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font follows the family naming recommendations?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font follows the family naming recommendations.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "CFF table FontName must match name table ID 6 (PostScript name).", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff", "status": "SKIP", "traceback": null}], "rationale": "\n The PostScript name entries in the font's 'name' table should match\n the FontName string in the 'CFF ' table.\n\n The 'CFF ' table has a lot of information that is duplicated in other tables.\n This information should be consistent across tables, because there's\n no guarantee which table an app will get the data from.\n ", "result": "SKIP"}, {"description": "Name table ID 6 (PostScript name) must be consistent across platforms.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Entries in the \"name\" table for ID 6 (PostScript name) are consistent.", "status": "PASS", "traceback": null}], "rationale": "\n The PostScript name entries in the font's 'name' table should be\n consistent across platforms.\n\n This is the TTF/CFF2 equivalent of the CFF 'name/postscript_vs_cff' check.\n ", "result": "PASS"}, {"description": "Check name table IDs 1, 2, 16, 17 to conform to Italic style.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font is not Italic.", "status": "SKIP", "traceback": null}], "rationale": "\n This check ensures that several entries in the name table\n conform to the font's Upright or Italic style,\n namely IDs 1 & 2 as well as 16 & 17 if they're present.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"PASS": 9, "SKIP": 2}}, {"checks": [{"description": "Does the number of glyphs in the loca table match the maxp table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "'loca' table matches numGlyphs in 'maxp' table.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check hhea.caretSlopeRise and hhea.caretSlopeRun", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "hhea.caretSlopeRise and hhea.caretSlopeRun match with post.italicAngle.", "status": "PASS", "traceback": null}], "rationale": "\n Checks whether hhea.caretSlopeRise and hhea.caretSlopeRun\n match with post.italicAngle.\n\n For Upright fonts, you can set hhea.caretSlopeRise to 1\n and hhea.caretSlopeRun to 0.\n\n For Italic fonts, you can set hhea.caretSlopeRise to head.unitsPerEm\n and calculate hhea.caretSlopeRun like this:\n round(math.tan(\n math.radians(-1 * font[\"post\"].italicAngle)) * font[\"head\"].unitsPerEm)\n\n This check allows for a 0.1\u00b0 rounding difference between the Italic angle\n as calculated by the caret slope and post.italicAngle\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 2}}, {"checks": [{"description": "Does the font have a DSIG table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "ok", "status": "PASS", "traceback": null}], "rationale": "\n Microsoft Office 2013 and below products expect fonts to have a digital\n signature declared in a DSIG table in order to implement OpenType features.\n The EOL date for Microsoft Office 2013 products is 4/11/2023.\n This issue does not impact Microsoft Office 2016 and above products.\n\n As we approach the EOL date, it is now considered better to\n completely remove the table.\n\n But if you still want your font to support OpenType features on Office 2013,\n then you may find it handy to add a fake signature on a placeholder DSIG table\n by running one of the helper scripts provided at\n https://github.com/googlefonts/gftools\n\n Reference: https://github.com/fonttools/fontbakery/issues/1845\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Check glyphs in mark glyph class are non-spacing.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not has spacing glyphs in the GDEF mark glyph class.", "status": "PASS", "traceback": null}], "rationale": "\n Glyphs in the GDEF mark glyph class should be non-spacing.\n\n Spacing glyphs in the GDEF mark glyph class may have incorrect anchor\n positioning that was only intended for building composite glyphs during design.\n ", "result": "PASS"}, {"description": "Check mark characters are in GDEF mark glyph class.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not have mark characters not in the GDEF mark glyph class.", "status": "PASS", "traceback": null}], "rationale": "\n Mark characters should be in the GDEF mark glyph class.\n ", "result": "PASS"}, {"description": "Check GDEF mark glyph class doesn't have characters that are not marks.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not have non-mark characters in the GDEF mark glyph class.", "status": "PASS", "traceback": null}], "rationale": "\n Glyphs in the GDEF mark glyph class become non-spacing and may be repositioned\n if they have mark anchors.\n\n Only combining mark glyphs should be in that class. Any non-mark glyph\n must not be in that class, in particular spacing glyphs.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "Does GPOS table have kerning information? This check skips monospaced fonts as defined by post.isFixedPitch value", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "GPOS table check for kerning information passed.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Is there a usable \"kern\" table declared in the font?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not declare an optional \"kern\" table.", "status": "PASS", "traceback": null}], "rationale": "\n Even though all fonts should have their kerning implemented in the GPOS table,\n there may be kerning info at the kern table as well.\n\n Some applications such as MS PowerPoint require kerning info on the kern table.\n More specifically, they require a format 0 kern subtable from a kern table\n version 0 with only glyphs defined in the cmap table, which is the only one\n that Windows understands (and which is also the simplest and more limited\n of all the kern subtables).\n\n Google Fonts ingests fonts made for download and use on desktops, and does\n all web font optimizations in the serving pipeline (using libre libraries\n that anyone can replicate.)\n\n Ideally, TTFs intended for desktop users (and thus the ones intended for\n Google Fonts) should have both KERN and GPOS tables.\n\n Given all of the above, we currently treat kerning on a v0 kern table\n as a good-to-have (but optional) feature.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Is there any unused data at the end of the glyf table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There is no unused data at the end of the glyf table.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check for points out of bounds.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All glyph paths have coordinates within bounds!", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check glyphs do not have duplicate components which have the same x,y coordinates.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyphs do not contain duplicate components which have the same x,y coordinates.", "status": "PASS", "traceback": null}], "rationale": "\n There have been cases in which fonts had faulty double quote marks, with each\n of them containing two single quote marks as components with the same\n x, y coordinates which makes them visually look like single quote marks.\n\n This check ensures that glyphs do not contain duplicate components\n which have the same x,y coordinates.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "The variable font 'wght' (Weight) axis coordinate must be 400 on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wght_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wght' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght\n\n If a variable font has a 'wght' (Weight) axis, then the coordinate of\n its 'Regular' instance is required to be 400.\n ", "result": "SKIP"}, {"description": "The variable font 'wdth' (Width) axis coordinate must be 100 on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wdth_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wdth' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wdth\n\n If a variable font has a 'wdth' (Width) axis, then the coordinate of\n its 'Regular' instance is required to be 100.\n ", "result": "SKIP"}, {"description": "The variable font 'slnt' (Slant) axis coordinate must be zero on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_slnt_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'slnt' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_slnt\n\n If a variable font has a 'slnt' (Slant) axis, then the coordinate of\n its 'Regular' instance is required to be zero.\n ", "result": "SKIP"}, {"description": "The variable font 'ital' (Italic) axis coordinate must be zero on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_ital_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'ital' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_ital\n\n If a variable font has a 'ital' (Italic) axis, then the coordinate of\n its 'Regular' instance is required to be zero.\n ", "result": "SKIP"}, {"description": "The variable font 'opsz' (Optical Size) axis coordinate should be between 10 and 16 on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_opsz_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'opsz' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_opsz\n\n If a variable font has an 'opsz' (Optical Size) axis, then\n the coordinate of its 'Regular' instance is recommended to be\n a value in the range 10 to 16.\n ", "result": "SKIP"}, {"description": "The variable font 'wght' (Weight) axis coordinate must be 700 on the 'Bold' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wght_axis", "status": "SKIP", "traceback": null}], "rationale": "\n The Open-Type spec's registered\n design-variation tag 'wght' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght\n does not specify a required value for the 'Bold' instance of a variable font.\n\n But Dave Crossland suggested that we should enforce\n a required value of 700 in this case (NOTE: a distinction\n is made between \"no bold instance present\" vs \"bold instance is present\n but its wght coordinate is not == 700\").\n ", "result": "SKIP"}, {"description": "The variable font 'wght' (Weight) axis coordinate must be within spec range of 1 to 1000 on all instances.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wght_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wght' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght\n\n On the 'wght' (Weight) axis, the valid coordinate range is 1-1000.\n ", "result": "SKIP"}, {"description": "The variable font 'wdth' (Width) axis coordinate must strictly greater than zero.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wdth_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wdth' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wdth\n\n On the 'wdth' (Width) axis, the valid numeric range is strictly greater than\n zero.\n ", "result": "SKIP"}, {"description": "The variable font 'slnt' (Slant) axis coordinate specifies positive values in its range?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_slnt_axis", "status": "SKIP", "traceback": null}], "rationale": "\n The OpenType spec says at\n https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_slnt that:\n\n [...] the scale for the Slant axis is interpreted as the angle of slant\n in counter-clockwise degrees from upright. This means that a typical,\n right-leaning oblique design will have a negative slant value. This matches\n the scale used for the italicAngle field in the post table.\n ", "result": "SKIP"}, {"description": "Validates that the value of axisNameID used by each VariationAxisRecord is greater than 255 and less than 32768.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The axisNameID field provides a name ID that can be used to obtain strings\n from the 'name' table that can be used to refer to the axis in application\n user interfaces. The name ID must be greater than 255 and less than 32768.\n ", "result": "SKIP"}, {"description": "Validates that the value of subfamilyNameID used by each InstanceRecord is 2, 17, or greater than 255 and less than 32768.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The subfamilyNameID field provides a name ID that can be used to obtain\n strings from the 'name' table that can be treated as equivalent to name\n ID 17 (typographic subfamily) strings for the given instance. Values of\n 2 or 17 can be used; otherwise, values must be greater than 255 and less\n than 32768.\n ", "result": "SKIP"}, {"description": "Validates that the value of postScriptNameID used by each InstanceRecord is 6, 0xFFFF, or greater than 255 and less than 32768.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The postScriptNameID field provides a name ID that can be used to obtain\n strings from the 'name' table that can be treated as equivalent to name\n ID 6 (PostScript name) strings for the given instance. Values of 6 and\n 0xFFFF can be used; otherwise, values must be greater than 255 and less\n than 32768.\n ", "result": "SKIP"}, {"description": "Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9.1\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The default instance of a font is that instance for which the coordinate\n value of each axis is the defaultValue specified in the corresponding\n variation axis record. An instance record is not required for the default\n instance, though an instance record can be provided. When enumerating named\n instances, the default instance should be enumerated even if there is no\n corresponding instance record. If an instance record is included for the\n default instance (that is, an instance record has coordinates set to default\n values), then the nameID value should be set to either 2 or 17 or to a\n name ID with the same value as name ID 2 or 17. Also, if a postScriptNameID is\n included in instance records, and the postScriptNameID value should be set\n to 6 or to a name ID with the same value as name ID 6.\n ", "result": "SKIP"}, {"description": "Validates that all of the instance records in a given font have the same size.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n All of the instance records in a given font must be the same size, with\n all either including or omitting the postScriptNameID field. [...]\n If the value is 0xFFFF, then the value is ignored, and no PostScript name\n equivalent is provided for the instance.\n ", "result": "SKIP"}, {"description": "Validates that all of the instance records in a given font have distinct data.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n All of the instance records in a font should have distinct coordinates\n and distinct subfamilyNameID and postScriptName ID values. If two or more\n records share the same coordinates, the same nameID values or the same\n postScriptNameID values, then all but the first can be ignored.\n ", "result": "SKIP"}, {"description": "Validate foundry-defined design-variation axis tag names.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's syntactic requirements for\n foundry-defined design-variation axis tags available at\n https://learn.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg\n\n Foundry-defined tags must begin with an uppercase letter\n and must use only uppercase letters or digits.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"SKIP": 16}}, {"checks": [{"description": "Ensure VFs have 'ital' STAT axis.", "key": ["", "", []], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Check that related Upright and Italic VFs have a\n 'ital' axis in STAT table.\n ", "result": "PASS"}, {"description": "All fvar axes have a correspondent Axis Record on STAT table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the OpenType spec, there must be an Axis Record\n for every axis defined in the fvar table.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/stat#axis-records\n ", "result": "SKIP"}, {"description": "STAT table has Axis Value tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n According to the OpenType spec, in a variable font, it is strongly recommended\n that axis value tables be included for every element of typographic subfamily\n names for all of the named instances defined in the 'fvar' table.\n\n Axis value tables are particularly important for variable fonts, but can also\n be used in non-variable fonts. When used in non-variable fonts, axis value\n tables for particular values should be implemented consistently across fonts\n in the family.\n\n If present, Format 4 Axis Value tables are checked to ensure they have more than\n one AxisValueRecord (a strong recommendation from the OpenType spec).\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/stat#axis-value-tables\n ", "result": "SKIP"}, {"description": "Ensure 'ital' STAT axis is boolean value (derived from com.google.fonts/check/italic_axis_in_stat_is_boolean)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n Check that the value of the 'ital' STAT axis is boolean (either 0 or 1),\n and elided for the Upright and not elided for the Italic,\n and that the Upright is linked to the Italic.\n ", "result": "SKIP"}, {"description": "Ensure 'ital' STAT axis is last. (derived from com.google.fonts/check/italic_axis_last)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n Check that the 'ital' STAT axis is last in axis order.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"PASS": 1, "SKIP": 4}}, {"checks": [{"description": "Does the font have any invalid feature tags?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No invalid feature tags were found", "status": "PASS", "traceback": null}], "rationale": "\n Incorrect tags can be indications of typos, leftover debugging code or\n questionable approaches, or user error in the font editor. Such typos can\n cause features and language support to fail to work as intended.\n ", "result": "PASS", "severity": 8}, {"description": "Does the font have any invalid script tags?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No invalid script tags were found", "status": "PASS", "traceback": null}], "rationale": "\n Incorrect script tags can be indications of typos, leftover debugging code\n or questionable approaches, or user error in the font editor. Such typos can\n cause features and language support to fail to work as intended.\n ", "result": "PASS", "severity": 8}, {"description": "Does the font have any invalid language tags?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No invalid language tags were found", "status": "PASS", "traceback": null}], "rationale": "\n Incorrect language tags can be indications of typos, leftover debugging code\n or questionable approaches, or user error in the font editor. Such typos can\n cause features and language support to fail to work as intended.\n ", "result": "PASS", "severity": 8}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "Check that texts shape as per expectation", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Shaping test directory not defined in configuration file", "status": "SKIP", "traceback": null}], "rationale": "\n Fonts with complex layout rules can benefit from regression tests to ensure\n that the rules are behaving as designed. This checks runs a shaping test\n suite and compares expected shaping against actual shaping, reporting\n any differences.\n\n Shaping test suites should be written by the font engineer and referenced\n in the FontBakery configuration file. For more information about write\n shaping test files and how to configure FontBakery to read the shaping\n test suites, see https://simoncozens.github.io/tdd-for-otl/\n ", "result": "SKIP"}, {"description": "Check that no forbidden glyphs are found while shaping", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Shaping test directory not defined in configuration file", "status": "SKIP", "traceback": null}], "rationale": "\n Fonts with complex layout rules can benefit from regression tests to ensure\n that the rules are behaving as designed. This checks runs a shaping test\n suite and reports if any glyphs are generated in the shaping which should\n not be produced. (For example, .notdef glyphs, visible viramas, etc.)\n\n Shaping test suites should be written by the font engineer and referenced in\n the FontBakery configuration file. For more information about write shaping\n test files and how to configure FontBakery to read the shaping test suites,\n see https://simoncozens.github.io/tdd-for-otl/\n ", "result": "SKIP"}, {"description": "Check that no collisions are found while shaping", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Shaping test directory not defined in configuration file", "status": "SKIP", "traceback": null}], "rationale": "\n Fonts with complex layout rules can benefit from regression tests to ensure\n that the rules are behaving as designed. This checks runs a shaping test\n suite and reports instances where the glyphs collide in unexpected ways.\n\n Shaping test suites should be written by the font engineer and referenced\n in the FontBakery configuration file. For more information about write\n shaping test files and how to configure FontBakery to read the shaping\n test suites, see https://simoncozens.github.io/tdd-for-otl/\n ", "result": "SKIP"}, {"description": "Ensure dotted circle glyph is present and can attach marks.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No dotted circle glyph present [code: missing-dotted-circle]", "status": "WARN", "traceback": null}], "rationale": "\n The dotted circle character (U+25CC) is inserted by shaping engines before\n mark glyphs which do not have an associated base, especially in the context\n of broken syllabic clusters.\n\n For fonts containing combining marks, it is recommended that the dotted circle\n character be included so that these isolated marks can be displayed properly;\n for fonts supporting complex scripts, this should be considered mandatory.\n\n Additionally, when a dotted circle glyph is present, it should be able to\n display all marks correctly, meaning that it should contain anchors for all\n attaching marks.\n ", "result": "WARN", "severity": 3}, {"description": "Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubiklines/RubikLines-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The dot of soft dotted characters used in orthographies _must_ disappear in the following strings: \u012f\u0300 \u012f\u0301 \u012f\u0302 \u012f\u0303 \u012f\u0304 \u012f\u030c \u0456\u0301\n\nThe dot of soft dotted characters _should_ disappear in other cases, for example: i\u0326\u0312 j\u0326\u0312 \u012f\u0306 \u012f\u0307 \u012f\u0308 \u012f\u030a \u012f\u030b \u012f\u0312 \u012f\u0326\u0312 \u012f\u0327\u0312 \u012f\u0328\u0312 \u012f\u0335\u0300 \u012f\u0335\u0301 \u012f\u0335\u0302 \u012f\u0335\u0303 \u012f\u0335\u0304 \u012f\u0335\u0306 \u012f\u0335\u0307 \u012f\u0335\u0308 \u012f\u0335\u030a\n\nYour font fully covers the following languages that require the soft-dotted feature: Belarusian (Cyrl, 10,064,517 speakers), Lithuanian (Latn, 2,357,094 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Dutch (Latn, 31,709,104 speakers). \n\nYour font does *not* cover the following languages that require the soft-dotted feature: Aghem (Latn, 38,843 speakers), Kom (Latn, 360,685 speakers), Ebira (Latn, 2,200,000 speakers), Koonzime (Latn, 40,000 speakers), Ejagham (Latn, 120,000 speakers), Gulay (Latn, 250,478 speakers), Lugbara (Latn, 2,200,000 speakers), Dan (Latn, 1,099,244 speakers), Basaa (Latn, 332,940 speakers), Nateni (Latn, 100,000 speakers), Mango (Latn, 77,000 speakers), Navajo (Latn, 166,319 speakers), Ma\u2019di (Latn, 584,000 speakers), Avokaya (Latn, 100,000 speakers), Igbo (Latn, 27,823,640 speakers), Sar (Latn, 500,000 speakers). [code: soft-dotted]", "status": "WARN", "traceback": null}], "rationale": "\n An accent placed on characters with a \"soft dot\", like i or j, causes\n the dot to disappear.\n An explicit dot above can be added where required.\n See \"Diacritics on i and j\" in Section 7.1, \"Latin\" in The Unicode Standard.\n\n Characters with the Soft_Dotted property are listed in\n https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n\n See also:\n https://googlefonts.github.io/gf-guide/diacritics.html#soft-dotted-glyphs\n ", "result": "WARN", "severity": 3}], "key": ["", null, null], "result": {"SKIP": 3, "WARN": 2}}], "fontbakery_version": "0.10.4"} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubiklines/GoogleFonts.json b/docs/fontbakery-reports/rubiklines/GoogleFonts.json new file mode 100644 index 0000000..fb78a0e --- /dev/null +++ b/docs/fontbakery-reports/rubiklines/GoogleFonts.json @@ -0,0 +1,7 @@ +{ + "color": "green", + "label": "Google Fonts", + "logoSvg": "", + "message": "86%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubiklines/ShapingChecks.json b/docs/fontbakery-reports/rubiklines/ShapingChecks.json new file mode 100644 index 0000000..1e5a389 --- /dev/null +++ b/docs/fontbakery-reports/rubiklines/ShapingChecks.json @@ -0,0 +1,7 @@ +{ + "color": "red", + "label": "Shaping Checks", + "logoSvg": "", + "message": "0%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubiklines/Universal.json b/docs/fontbakery-reports/rubiklines/Universal.json new file mode 100644 index 0000000..cf5bd91 --- /dev/null +++ b/docs/fontbakery-reports/rubiklines/Universal.json @@ -0,0 +1,7 @@ +{ + "color": "green", + "label": "Universal", + "logoSvg": "", + "message": "81%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubiklines/overall.json b/docs/fontbakery-reports/rubiklines/overall.json new file mode 100644 index 0000000..6b5caf8 --- /dev/null +++ b/docs/fontbakery-reports/rubiklines/overall.json @@ -0,0 +1,7 @@ +{ + "color": "green", + "label": "FontBakery QA", + "logoSvg": "", + "message": "87%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikmaps-report.html b/docs/fontbakery-reports/rubikmaps-report.html new file mode 100644 index 0000000..d4cef7f --- /dev/null +++ b/docs/fontbakery-reports/rubikmaps-report.html @@ -0,0 +1,2745 @@ + + + + + FontBakery Check Report + + + +
+ +
+ Fontbakery Technical Report +
+
+ +
+

If you think a check is flawed or have an idea for a check, please file an issue at https://github.com/fonttools/fontbakery/issues and remember to include a pointer to the repo and branch you're checking.

+

Summary

+ + + + + + + + + + + + + + + + + + + + + + + + + +
💥 ERROR🔥 FAIL⚠️ WARN⏩ SKIPℹ️ INFO✅ PASS
0412649158
0%2%7%35%5%87%
+ +

Note: The following loglevels were omitted in this report: SKIP, INFO, PASS, DEBUG

+ +

Meaning of check results:

+ +
    +
  • 💥 An ERROR is something wrong with FontBakery itself, possibly a bug. +
  • 🔥 A FAIL is a problem with the font that must be fixed. +
  • ⚠️ A WARN is something that you should consider addressing. +
  • ℹ️ An INFO result simply prints something useful. Typically stats. +
  • ✅ A PASS means the font looks good for the given checking routine. +
  • ⏩ And a SKIP happens when the check does not apply to the given font. +
+ +

If you get ERRORs, please help us improve the tool by reporting them at our + issue tracker.

+ +

(but other kinds of bug reports and/or feature requests + are also always welcome, of course!)

+ +

FontBakery version: 0.10.4

+ +

Section: Google Fonts

+🔥🔥🔥🔥⚠️⚠️⚠️⚠️⚠️⚠️⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩ℹ️ℹ️ℹ️ℹ️ℹ️ℹ️ℹ️ +

Checking OS/2 achVendID.

+
Check ID: com.google.fonts/check/vendor_id
+ +
⚠️ RubikMaps-Regular.ttf
  • ⚠️ WARN

    OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx +[code: unknown]

    +
+

Check for codepoints not covered by METADATA subsets.

+
Check ID: com.google.fonts/check/metadata/unreachable_subsetting
+ +
⚠️ RubikMaps-Regular.ttf
  • ⚠️ WARN

    The following codepoints supported by the font are not covered by +any subsets defined in the font's metadata file, and will never +be served. You can solve this by either manually adding additional +subset declarations to METADATA.pb, or by editing the glyphset +definitions.

    +
      +
    • U+02C7 CARON: try adding one of: yi, canadian-aboriginal, tifinagh
    • +
    • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
    • +
    • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
    • +
    • U+02DB OGONEK: try adding one of: yi, canadian-aboriginal
    • +
    • U+02DD DOUBLE ACUTE ACCENT: not included in any glyphset definition
    • +
    • U+0306 COMBINING BREVE: try adding one of: tifinagh, old-permic
    • +
    • U+030A COMBINING RING ABOVE: try adding syriac
    • +
    • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee
    • +
    • U+030C COMBINING CARON: try adding one of: tai-le, cherokee
    • +
    • U+0312 COMBINING TURNED COMMA ABOVE: not included in any glyphset definition
    • +
    • U+0326 COMBINING COMMA BELOW: not included in any glyphset definition
    • +
    • U+0327 COMBINING CEDILLA: not included in any glyphset definition
    • +
    • U+0328 COMBINING OGONEK: not included in any glyphset definition
    • +
    • U+0335 COMBINING SHORT STROKE OVERLAY: not included in any glyphset definition
    • +
    • U+0337 COMBINING SHORT SOLIDUS OVERLAY: not included in any glyphset definition
    • +
    • U+0338 COMBINING LONG SOLIDUS OVERLAY: not included in any glyphset definition
    • +
    • U+2021 DOUBLE DAGGER: try adding adlam
    • +
    • U+2030 PER MILLE SIGN: try adding adlam
    • +
    • U+2070 SUPERSCRIPT ZERO: not included in any glyphset definition
    • +
    • U+2075 SUPERSCRIPT FIVE: not included in any glyphset definition
    • +
    • U+2076 SUPERSCRIPT SIX: not included in any glyphset definition
    • +
    • U+2077 SUPERSCRIPT SEVEN: not included in any glyphset definition
    • +
    • U+2078 SUPERSCRIPT EIGHT: not included in any glyphset definition
    • +
    • U+2079 SUPERSCRIPT NINE: not included in any glyphset definition
    • +
    • U+207D SUPERSCRIPT LEFT PARENTHESIS: not included in any glyphset definition
    • +
    • U+207E SUPERSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition
    • +
    • U+2080 SUBSCRIPT ZERO: not included in any glyphset definition
    • +
    • U+2081 SUBSCRIPT ONE: not included in any glyphset definition
    • +
    • U+2082 SUBSCRIPT TWO: not included in any glyphset definition
    • +
    • U+2083 SUBSCRIPT THREE: not included in any glyphset definition
    • +
    • U+2084 SUBSCRIPT FOUR: not included in any glyphset definition
    • +
    • U+2085 SUBSCRIPT FIVE: not included in any glyphset definition
    • +
    • U+2086 SUBSCRIPT SIX: not included in any glyphset definition
    • +
    • U+2087 SUBSCRIPT SEVEN: not included in any glyphset definition
    • +
    • U+2088 SUBSCRIPT EIGHT: not included in any glyphset definition
    • +
    • U+2089 SUBSCRIPT NINE: not included in any glyphset definition
    • +
    • U+208D SUBSCRIPT LEFT PARENTHESIS: not included in any glyphset definition
    • +
    • U+208E SUBSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition
    • +
    • U+212E ESTIMATED SYMBOL: not included in any glyphset definition
    • +
    • U+2153 VULGAR FRACTION ONE THIRD: not included in any glyphset definition
    • +
    • U+2154 VULGAR FRACTION TWO THIRDS: not included in any glyphset definition
    • +
    • U+215B VULGAR FRACTION ONE EIGHTH: not included in any glyphset definition
    • +
    • U+215C VULGAR FRACTION THREE EIGHTHS: not included in any glyphset definition
    • +
    • U+215D VULGAR FRACTION FIVE EIGHTHS: not included in any glyphset definition
    • +
    • U+215E VULGAR FRACTION SEVEN EIGHTHS: not included in any glyphset definition
    • +
    • U+FB01 LATIN SMALL LIGATURE FI: not included in any glyphset definition
    • +
    • U+FB02 LATIN SMALL LIGATURE FL: not included in any glyphset definition
    • +
    +

    Or you can add the above codepoints to one of the subsets supported by the font: cyrillic, cyrillic-ext, hebrew, latin, latin-ext, math, menu, symbols [code: unreachable-subsetting]

    +
+

Ensure files are not too large.

+
Check ID: com.google.fonts/check/file_size
+ +
⚠️ RubikMaps-Regular.ttf
  • ⚠️ WARN

    Font file is 2.2Mb; ideally it should be less than 1.0Mb [code: large-font]

    +
+

METADATA.pb: Check URL on copyright string is the same as in repository_url field.

+
Check ID: com.google.fonts/check/metadata/consistent_repo_urls
+ +
🔥 RubikMaps-Regular.ttf
  • 🔥 FAIL

    Repository URL is https://github.com/NaN-xyz/Rubik-Filtered

    +

    But: OFL text has 'https:/' and HTML description has 'github.com/NaN-xyz/Glyph-Filters' +[code: mismatch]

    +
+

EXPERIMENTAL CHECK - Since 2023/Nov/02
Shapes languages in all GF glyphsets.

+
Check ID: com.google.fonts/check/glyphsets/shape_languages
+ +
🔥 RubikMaps-Regular.ttf
  • 🔥 FAIL

    GF_Latin_Core glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| haw_Latn (Hawaiian) | Some base glyphs were missing: ʻ | +| ^ | Shaper produced a .notdef | +| mh_Latn (Marshallese) | Some base glyphs were missing: Ḷ, ḷ, Ṃ, ṃ, Ṇ, ṇ, Ọ, ọ | +| ^ | Some mark glyphs were missing: ◌̣ | +| ^ | Shaper produced a .notdef | +| scn_Latn (Sicilian) | Some base glyphs were missing: Ḍ, ḍ | +| ^ | Shaper produced a .notdef | +| teo_Latn (Teso) | Some base glyphs were missing: Ɔ, Ɛ, Ɨ, Ʉ, ɔ, ɛ, ɨ, ʉ, ᵃ, ᵉ, ᵋ, ᵒ, ᵓ, ᵘ, ᶤ, ᶶ, ⁱ | +| ^ | Shaper produced a .notdef |

    +

    [code: failed-language-shaping]

    +
  • 🔥 FAIL

    GF_Cyrillic_Plus glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| tg_Cyrl (Tajik) | Some base glyphs were missing: ҳ | +| ^ | Shaper produced a .notdef | +| uz_Cyrl (Uzbek (Cyrillic)) | Some base glyphs were missing: ҳ | +| ^ | Shaper produced a .notdef |

    +

    [code: failed-language-shaping]

    +
  • ⚠️ WARN

    GF_Latin_Core glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| lg_Latn (Ganda) | No variant glyphs were found for Eng | +| dyo_Latn (Jola-Fonyi) | No variant glyphs were found for Eng | +| ny_Latn (Nyanja) | No variant glyphs were found for Eng | +| wo_Latn (Wolof) | No variant glyphs were found for Eng |

    +

    [code: warning-language-shaping]

    +
  • ⚠️ WARN

    GF_Cyrillic_Plus glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| ku_Cyrl (Kurdish) | No exemplar glyphs were defined for language Kurdish |

    +

    [code: warning-language-shaping]

    +
+

Is there kerning info for non-ligated sequences?

+
Check ID: com.google.fonts/check/kerning_for_non_ligated_sequences
+ +
⚠️ RubikMaps-Regular.ttf
  • ⚠️ WARN

    GPOS table lacks kerning info for the following non-ligated sequences:

    +
    - f + f
    +
    +- f + i
    +
    +- i + f
    +
    +- f + l
    +
    +- l + f
    +
    +- i + l [code: lacks-kern-info]
    +
    +
+

Check font follows the Google Fonts vertical metric schema

+
Check ID: com.google.fonts/check/vertical_metrics
+ +
🔥 RubikMaps-Regular.ttf
  • 🔥 FAIL

    The sum of hhea.ascender + abs(hhea.descender) + hhea.lineGap is 1185 when it should be at least 1200 [code: bad-hhea-range]

    +
+

METADATA.pb: Designers are listed correctly on the Google Fonts catalog?

+
Check ID: com.google.fonts/check/metadata/designer_profiles
+ +
🔥 RubikMaps-Regular.ttf
  • 🔥 FAIL

    Designer Luke Prowse still does not have an avatar image. Please provide one. [code: missing-avatar]

    +
+

On a family update, the DESCRIPTION.en_us.html file should ideally also be updated.

+
Check ID: com.google.fonts/check/description/family_update
+ +
⚠️ RubikMaps-Regular.ttf
  • ⚠️ WARN

    The DESCRIPTION.en_us.html file in this family has not changed in comparison to the latest font release on the google/fonts github repo. +Please consider mentioning note-worthy improvements made to the family recently. [code: description-not-updated]

    +
+

Ensure fonts have ScriptLangTags declared on the 'meta' table.

+
Check ID: com.google.fonts/check/meta/script_lang_tags
+ +
⚠️ RubikMaps-Regular.ttf
  • ⚠️ WARN

    This font file does not have a 'meta' table. [code: lacks-meta-table]

    +
+

Section: Universal

+⚠️⚠️⚠️⚠️⏩⏩⏩⏩⏩⏩⏩ℹ️ℹ️ +

Check font contains no unreachable glyphs

+
Check ID: com.google.fonts/check/unreachable_glyphs
+ +
⚠️ RubikMaps-Regular.ttf
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

    +
    - LineHorizontalComponent
    +
    +- LineVerticalComponent
    +
    +

    [code: unreachable-glyphs]

    +
+

Check if each glyph has the recommended amount of contours.

+
Check ID: com.google.fonts/check/contour_count
+ +
⚠️ RubikMaps-Regular.ttf
  • ⚠️ WARN

    This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

    +

    The following glyphs do not have the recommended number of contours:

    +
    - Glyph name: exclam	Contours detected: 164	Expected: 2
    +
    +- Glyph name: quotedbl	Contours detected: 34	Expected: 2
    +
    +- Glyph name: numbersign	Contours detected: 256	Expected: 2
    +
    +- Glyph name: dollar	Contours detected: 474	Expected: 1, 3 or 5
    +
    +- Glyph name: percent	Contours detected: 336	Expected: 5
    +
    +- Glyph name: ampersand	Contours detected: 280	Expected: 1, 2 or 3
    +
    +- Glyph name: quotesingle	Contours detected: 27	Expected: 1
    +
    +- Glyph name: parenleft	Contours detected: 262	Expected: 1
    +
    +- Glyph name: parenright	Contours detected: 205	Expected: 1
    +
    +- Glyph name: asterisk	Contours detected: 145	Expected: 1 or 4
    +
    +- Glyph name: plus	Contours detected: 183	Expected: 1
    +
    +- Glyph name: comma	Contours detected: 80	Expected: 1
    +
    +- Glyph name: hyphen	Contours detected: 70	Expected: 1
    +
    +- Glyph name: period	Contours detected: 20	Expected: 1
    +
    +- Glyph name: slash	Contours detected: 215	Expected: 1
    +
    +- Glyph name: zero	Contours detected: 432	Expected: 2 or 3
    +
    +- Glyph name: one	Contours detected: 277	Expected: 1
    +
    +- Glyph name: two	Contours detected: 371	Expected: 1
    +
    +- Glyph name: three	Contours detected: 411	Expected: 1
    +
    +- Glyph name: four	Contours detected: 344	Expected: 1 or 2
    +
    +- Glyph name: five	Contours detected: 406	Expected: 1
    +
    +- Glyph name: six	Contours detected: 407	Expected: 1 or 2
    +
    +- Glyph name: seven	Contours detected: 291	Expected: 1
    +
    +- Glyph name: eight	Contours detected: 452	Expected: 3
    +
    +- Glyph name: nine	Contours detected: 316	Expected: 1 or 2
    +
    +- Glyph name: colon	Contours detected: 107	Expected: 2
    +
    +- Glyph name: semicolon	Contours detected: 154	Expected: 2
    +
    +- Glyph name: less	Contours detected: 183	Expected: 1
    +
    +- Glyph name: equal	Contours detected: 119	Expected: 2
    +
    +- Glyph name: greater	Contours detected: 120	Expected: 1
    +
    +- Glyph name: question	Contours detected: 285	Expected: 2
    +
    +- Glyph name: at	Contours detected: 212	Expected: 2
    +
    +- Glyph name: A	Contours detected: 352	Expected: 2
    +
    +- Glyph name: B	Contours detected: 301	Expected: 2 or 3
    +
    +- Glyph name: C	Contours detected: 374	Expected: 1
    +
    +- Glyph name: D	Contours detected: 420	Expected: 2
    +
    +- Glyph name: E	Contours detected: 255	Expected: 1
    +
    +- Glyph name: F	Contours detected: 325	Expected: 1
    +
    +- Glyph name: G	Contours detected: 394	Expected: 1
    +
    +- Glyph name: H	Contours detected: 525	Expected: 1
    +
    +- Glyph name: I	Contours detected: 187	Expected: 1
    +
    +- Glyph name: J	Contours detected: 336	Expected: 1
    +
    +- Glyph name: K	Contours detected: 450	Expected: 1 or 2
    +
    +- Glyph name: L	Contours detected: 286	Expected: 1
    +
    +- Glyph name: M	Contours detected: 228	Expected: 1
    +
    +- Glyph name: N	Contours detected: 418	Expected: 1
    +
    +- Glyph name: O	Contours detected: 474	Expected: 2
    +
    +- Glyph name: P	Contours detected: 283	Expected: 1 or 2
    +
    +- Glyph name: Q	Contours detected: 431	Expected: 2
    +
    +- Glyph name: R	Contours detected: 457	Expected: 1 or 2
    +
    +- Glyph name: S	Contours detected: 217	Expected: 1
    +
    +- Glyph name: T	Contours detected: 255	Expected: 1
    +
    +- Glyph name: U	Contours detected: 366	Expected: 1
    +
    +- Glyph name: V	Contours detected: 290	Expected: 1
    +
    +- Glyph name: W	Contours detected: 547	Expected: 1 or 2
    +
    +- Glyph name: X	Contours detected: 356	Expected: 1
    +
    +- Glyph name: Y	Contours detected: 261	Expected: 1
    +
    +- Glyph name: Z	Contours detected: 408	Expected: 1
    +
    +- Glyph name: bracketleft	Contours detected: 339	Expected: 1
    +
    +- Glyph name: backslash	Contours detected: 134	Expected: 1
    +
    +- Glyph name: bracketright	Contours detected: 240	Expected: 1
    +
    +- Glyph name: asciicircum	Contours detected: 16	Expected: 1
    +
    +- Glyph name: underscore	Contours detected: 66	Expected: 1
    +
    +- Glyph name: grave	Contours detected: 6	Expected: 1
    +
    +- Glyph name: a	Contours detected: 229	Expected: 2
    +
    +- Glyph name: b	Contours detected: 345	Expected: 2
    +
    +- Glyph name: c	Contours detected: 239	Expected: 1
    +
    +- Glyph name: d	Contours detected: 465	Expected: 2
    +
    +- Glyph name: e	Contours detected: 198	Expected: 2
    +
    +- Glyph name: f	Contours detected: 307	Expected: 1
    +
    +- Glyph name: g	Contours detected: 331	Expected: 2 or 3
    +
    +- Glyph name: h	Contours detected: 353	Expected: 1
    +
    +- Glyph name: i	Contours detected: 116	Expected: 2
    +
    +- Glyph name: j	Contours detected: 208	Expected: 2
    +
    +- Glyph name: k	Contours detected: 298	Expected: 1 or 2
    +
    +- Glyph name: l	Contours detected: 248	Expected: 1
    +
    +- Glyph name: m	Contours detected: 289	Expected: 1
    +
    +- Glyph name: n	Contours detected: 257	Expected: 1
    +
    +- Glyph name: o	Contours detected: 250	Expected: 2
    +
    +- Glyph name: p	Contours detected: 338	Expected: 2
    +
    +- Glyph name: q	Contours detected: 397	Expected: 2
    +
    +- Glyph name: r	Contours detected: 200	Expected: 1
    +
    +- Glyph name: s	Contours detected: 162	Expected: 1
    +
    +- Glyph name: t	Contours detected: 207	Expected: 1
    +
    +- Glyph name: u	Contours detected: 362	Expected: 1
    +
    +- Glyph name: v	Contours detected: 163	Expected: 1
    +
    +- Glyph name: w	Contours detected: 233	Expected: 1
    +
    +- Glyph name: x	Contours detected: 207	Expected: 1
    +
    +- Glyph name: y	Contours detected: 290	Expected: 1
    +
    +- Glyph name: z	Contours detected: 198	Expected: 1
    +
    +- Glyph name: braceleft	Contours detected: 250	Expected: 1
    +
    +- Glyph name: bar	Contours detected: 235	Expected: 1
    +
    +- Glyph name: braceright	Contours detected: 272	Expected: 1
    +
    +- Glyph name: asciitilde	Contours detected: 100	Expected: 1
    +
    +- Glyph name: exclamdown	Contours detected: 148	Expected: 2
    +
    +- Glyph name: cent	Contours detected: 278	Expected: 1 or 2
    +
    +- Glyph name: sterling	Contours detected: 317	Expected: 1 or 2
    +
    +- Glyph name: currency	Contours detected: 167	Expected: 2
    +
    +- Glyph name: yen	Contours detected: 231	Expected: 1 or 2
    +
    +- Glyph name: brokenbar	Contours detected: 154	Expected: 2
    +
    +- Glyph name: section	Contours detected: 505	Expected: 2
    +
    +- Glyph name: dieresis	Contours detected: 5	Expected: 2
    +
    +- Glyph name: copyright	Contours detected: 254	Expected: 3
    +
    +- Glyph name: ordfeminine	Contours detected: 63	Expected: 2 or 3
    +
    +- Glyph name: guillemotleft	Contours detected: 203	Expected: 2
    +
    +- Glyph name: logicalnot	Contours detected: 62	Expected: 1
    +
    +- Glyph name: uni00AD	Contours detected: 70	Expected: 0
    +
    +- Glyph name: registered	Contours detected: 315	Expected: 3 or 4
    +
    +- Glyph name: macron	Contours detected: 34	Expected: 1
    +
    +- Glyph name: degree	Contours detected: 79	Expected: 2
    +
    +- Glyph name: plusminus	Contours detected: 245	Expected: 1 or 2
    +
    +- Glyph name: uni00B2	Contours detected: 98	Expected: 1
    +
    +- Glyph name: uni00B3	Contours detected: 77	Expected: 1
    +
    +- Glyph name: acute	Contours detected: 11	Expected: 1
    +
    +- Glyph name: uni00B5	Contours detected: 373	Expected: 1
    +
    +- Glyph name: paragraph	Contours detected: 264	Expected: 1, 2 or 3
    +
    +- Glyph name: periodcentered	Contours detected: 78	Expected: 1
    +
    +- Glyph name: cedilla	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni00B9	Contours detected: 17	Expected: 1
    +
    +- Glyph name: ordmasculine	Contours detected: 27	Expected: 2 or 3
    +
    +- Glyph name: guillemotright	Contours detected: 228	Expected: 2
    +
    +- Glyph name: onequarter	Contours detected: 173	Expected: 3 or 4
    +
    +- Glyph name: onehalf	Contours detected: 238	Expected: 3
    +
    +- Glyph name: threequarters	Contours detected: 233	Expected: 3 or 4
    +
    +- Glyph name: questiondown	Contours detected: 214	Expected: 2
    +
    +- Glyph name: Agrave	Contours detected: 386	Expected: 3
    +
    +- Glyph name: Aacute	Contours detected: 355	Expected: 3
    +
    +- Glyph name: Acircumflex	Contours detected: 372	Expected: 3
    +
    +- Glyph name: Atilde	Contours detected: 370	Expected: 3
    +
    +- Glyph name: Adieresis	Contours detected: 369	Expected: 4
    +
    +- Glyph name: Aring	Contours detected: 353	Expected: 3 or 4
    +
    +- Glyph name: AE	Contours detected: 496	Expected: 2
    +
    +- Glyph name: Ccedilla	Contours detected: 466	Expected: 1 or 2
    +
    +- Glyph name: Egrave	Contours detected: 289	Expected: 2
    +
    +- Glyph name: Eacute	Contours detected: 258	Expected: 2
    +
    +- Glyph name: Ecircumflex	Contours detected: 275	Expected: 2
    +
    +- Glyph name: Edieresis	Contours detected: 272	Expected: 3
    +
    +- Glyph name: Igrave	Contours detected: 221	Expected: 2
    +
    +- Glyph name: Iacute	Contours detected: 190	Expected: 2
    +
    +- Glyph name: Icircumflex	Contours detected: 207	Expected: 2
    +
    +- Glyph name: Idieresis	Contours detected: 204	Expected: 3
    +
    +- Glyph name: Eth	Contours detected: 371	Expected: 2
    +
    +- Glyph name: Ntilde	Contours detected: 436	Expected: 2
    +
    +- Glyph name: Ograve	Contours detected: 508	Expected: 3
    +
    +- Glyph name: Oacute	Contours detected: 477	Expected: 3
    +
    +- Glyph name: Ocircumflex	Contours detected: 494	Expected: 3
    +
    +- Glyph name: Otilde	Contours detected: 492	Expected: 3
    +
    +- Glyph name: Odieresis	Contours detected: 491	Expected: 4
    +
    +- Glyph name: multiply	Contours detected: 158	Expected: 1
    +
    +- Glyph name: Oslash	Contours detected: 568	Expected: 2 or 3
    +
    +- Glyph name: Ugrave	Contours detected: 400	Expected: 2
    +
    +- Glyph name: Uacute	Contours detected: 369	Expected: 2
    +
    +- Glyph name: Ucircumflex	Contours detected: 386	Expected: 2
    +
    +- Glyph name: Udieresis	Contours detected: 383	Expected: 3
    +
    +- Glyph name: Yacute	Contours detected: 264	Expected: 2
    +
    +- Glyph name: Thorn	Contours detected: 363	Expected: 1 or 2
    +
    +- Glyph name: germandbls	Contours detected: 307	Expected: 1
    +
    +- Glyph name: agrave	Contours detected: 235	Expected: 3
    +
    +- Glyph name: aacute	Contours detected: 240	Expected: 3
    +
    +- Glyph name: acircumflex	Contours detected: 254	Expected: 3
    +
    +- Glyph name: atilde	Contours detected: 251	Expected: 3
    +
    +- Glyph name: adieresis	Contours detected: 234	Expected: 4
    +
    +- Glyph name: aring	Contours detected: 230	Expected: 4
    +
    +- Glyph name: ae	Contours detected: 307	Expected: 3
    +
    +- Glyph name: ccedilla	Contours detected: 237	Expected: 1 or 2
    +
    +- Glyph name: egrave	Contours detected: 204	Expected: 3
    +
    +- Glyph name: eacute	Contours detected: 209	Expected: 3
    +
    +- Glyph name: ecircumflex	Contours detected: 223	Expected: 3
    +
    +- Glyph name: edieresis	Contours detected: 203	Expected: 4
    +
    +- Glyph name: igrave	Contours detected: 102	Expected: 2
    +
    +- Glyph name: iacute	Contours detected: 107	Expected: 2
    +
    +- Glyph name: icircumflex	Contours detected: 121	Expected: 2
    +
    +- Glyph name: idieresis	Contours detected: 101	Expected: 3
    +
    +- Glyph name: eth	Contours detected: 312	Expected: 2
    +
    +- Glyph name: ntilde	Contours detected: 279	Expected: 2
    +
    +- Glyph name: ograve	Contours detected: 256	Expected: 3
    +
    +- Glyph name: oacute	Contours detected: 261	Expected: 3
    +
    +- Glyph name: ocircumflex	Contours detected: 275	Expected: 3
    +
    +- Glyph name: otilde	Contours detected: 272	Expected: 3
    +
    +- Glyph name: odieresis	Contours detected: 255	Expected: 4
    +
    +- Glyph name: divide	Contours detected: 188	Expected: 3
    +
    +- Glyph name: oslash	Contours detected: 303	Expected: 3
    +
    +- Glyph name: ugrave	Contours detected: 368	Expected: 2
    +
    +- Glyph name: uacute	Contours detected: 373	Expected: 2
    +
    +- Glyph name: ucircumflex	Contours detected: 387	Expected: 2
    +
    +- Glyph name: udieresis	Contours detected: 367	Expected: 3
    +
    +- Glyph name: yacute	Contours detected: 301	Expected: 2
    +
    +- Glyph name: thorn	Contours detected: 494	Expected: 2
    +
    +- Glyph name: ydieresis	Contours detected: 295	Expected: 3
    +
    +- Glyph name: Amacron	Contours detected: 364	Expected: 3
    +
    +- Glyph name: amacron	Contours detected: 263	Expected: 3
    +
    +- Glyph name: Abreve	Contours detected: 387	Expected: 3
    +
    +- Glyph name: abreve	Contours detected: 243	Expected: 3
    +
    +- Glyph name: Aogonek	Contours detected: 574	Expected: 2 or 3
    +
    +- Glyph name: aogonek	Contours detected: 265	Expected: 2
    +
    +- Glyph name: Cacute	Contours detected: 377	Expected: 2
    +
    +- Glyph name: cacute	Contours detected: 250	Expected: 2
    +
    +- Glyph name: Ccircumflex	Contours detected: 394	Expected: 2
    +
    +- Glyph name: ccircumflex	Contours detected: 264	Expected: 2
    +
    +- Glyph name: Cdotaccent	Contours detected: 392	Expected: 2
    +
    +- Glyph name: cdotaccent	Contours detected: 240	Expected: 2
    +
    +- Glyph name: Ccaron	Contours detected: 387	Expected: 2
    +
    +- Glyph name: ccaron	Contours detected: 256	Expected: 2
    +
    +- Glyph name: Dcaron	Contours detected: 433	Expected: 3
    +
    +- Glyph name: dcaron	Contours detected: 478	Expected: 3
    +
    +- Glyph name: Dcroat	Contours detected: 482	Expected: 2
    +
    +- Glyph name: dcroat	Contours detected: 295	Expected: 2
    +
    +- Glyph name: Emacron	Contours detected: 267	Expected: 2
    +
    +- Glyph name: emacron	Contours detected: 232	Expected: 3
    +
    +- Glyph name: Ebreve	Contours detected: 290	Expected: 2
    +
    +- Glyph name: ebreve	Contours detected: 212	Expected: 3
    +
    +- Glyph name: Edotaccent	Contours detected: 273	Expected: 2
    +
    +- Glyph name: edotaccent	Contours detected: 199	Expected: 3
    +
    +- Glyph name: Eogonek	Contours detected: 255	Expected: 1 or 2
    +
    +- Glyph name: eogonek	Contours detected: 237	Expected: 2
    +
    +- Glyph name: Ecaron	Contours detected: 268	Expected: 2
    +
    +- Glyph name: ecaron	Contours detected: 215	Expected: 3
    +
    +- Glyph name: Gcircumflex	Contours detected: 414	Expected: 2
    +
    +- Glyph name: gcircumflex	Contours detected: 356	Expected: 3 or 4
    +
    +- Glyph name: Gbreve	Contours detected: 429	Expected: 2
    +
    +- Glyph name: gbreve	Contours detected: 345	Expected: 3 or 4
    +
    +- Glyph name: Gdotaccent	Contours detected: 412	Expected: 2
    +
    +- Glyph name: gdotaccent	Contours detected: 332	Expected: 3 or 4
    +
    +- Glyph name: uni0122	Contours detected: 415	Expected: 2
    +
    +- Glyph name: uni0123	Contours detected: 351	Expected: 3 or 4
    +
    +- Glyph name: Hcircumflex	Contours detected: 545	Expected: 2
    +
    +- Glyph name: hcircumflex	Contours detected: 378	Expected: 2
    +
    +- Glyph name: Hbar	Contours detected: 499	Expected: 2
    +
    +- Glyph name: hbar	Contours detected: 336	Expected: 1
    +
    +- Glyph name: Itilde	Contours detected: 205	Expected: 2
    +
    +- Glyph name: itilde	Contours detected: 118	Expected: 2
    +
    +- Glyph name: Imacron	Contours detected: 199	Expected: 2
    +
    +- Glyph name: imacron	Contours detected: 130	Expected: 2
    +
    +- Glyph name: Ibreve	Contours detected: 222	Expected: 2
    +
    +- Glyph name: ibreve	Contours detected: 110	Expected: 2
    +
    +- Glyph name: Iogonek	Contours detected: 280	Expected: 1 or 2
    +
    +- Glyph name: iogonek	Contours detected: 167	Expected: 2 or 3
    +
    +- Glyph name: Idotaccent	Contours detected: 205	Expected: 2
    +
    +- Glyph name: dotlessi	Contours detected: 96	Expected: 1
    +
    +- Glyph name: IJ	Contours detected: 419	Expected: 1 or 2
    +
    +- Glyph name: ij	Contours detected: 324	Expected: 3 or 4
    +
    +- Glyph name: Jcircumflex	Contours detected: 356	Expected: 2
    +
    +- Glyph name: jcircumflex	Contours detected: 195	Expected: 2
    +
    +- Glyph name: uni0136	Contours detected: 471	Expected: 2 or 3
    +
    +- Glyph name: uni0137	Contours detected: 318	Expected: 2 or 3
    +
    +- Glyph name: kgreenlandic	Contours detected: 296	Expected: 1 or 2
    +
    +- Glyph name: Lacute	Contours detected: 289	Expected: 2
    +
    +- Glyph name: lacute	Contours detected: 259	Expected: 2
    +
    +- Glyph name: uni013B	Contours detected: 307	Expected: 2
    +
    +- Glyph name: uni013C	Contours detected: 268	Expected: 2
    +
    +- Glyph name: Lcaron	Contours detected: 299	Expected: 2
    +
    +- Glyph name: lcaron	Contours detected: 261	Expected: 2
    +
    +- Glyph name: Ldot	Contours detected: 287	Expected: 2
    +
    +- Glyph name: ldot	Contours detected: 249	Expected: 2
    +
    +- Glyph name: Lslash	Contours detected: 258	Expected: 1
    +
    +- Glyph name: lslash	Contours detected: 229	Expected: 1
    +
    +- Glyph name: Nacute	Contours detected: 421	Expected: 2
    +
    +- Glyph name: nacute	Contours detected: 268	Expected: 2
    +
    +- Glyph name: uni0145	Contours detected: 439	Expected: 2
    +
    +- Glyph name: uni0146	Contours detected: 277	Expected: 2
    +
    +- Glyph name: Ncaron	Contours detected: 431	Expected: 2
    +
    +- Glyph name: ncaron	Contours detected: 274	Expected: 2
    +
    +- Glyph name: napostrophe	Contours detected: 277	Expected: 2
    +
    +- Glyph name: Eng	Contours detected: 488	Expected: 1
    +
    +- Glyph name: eng	Contours detected: 420	Expected: 1
    +
    +- Glyph name: Omacron	Contours detected: 486	Expected: 3
    +
    +- Glyph name: omacron	Contours detected: 284	Expected: 3
    +
    +- Glyph name: Obreve	Contours detected: 509	Expected: 3
    +
    +- Glyph name: obreve	Contours detected: 264	Expected: 3
    +
    +- Glyph name: Ohungarumlaut	Contours detected: 521	Expected: 4
    +
    +- Glyph name: ohungarumlaut	Contours detected: 252	Expected: 4
    +
    +- Glyph name: OE	Contours detected: 546	Expected: 2
    +
    +- Glyph name: oe	Contours detected: 431	Expected: 3
    +
    +- Glyph name: Racute	Contours detected: 460	Expected: 3
    +
    +- Glyph name: racute	Contours detected: 211	Expected: 2
    +
    +- Glyph name: uni0156	Contours detected: 478	Expected: 3
    +
    +- Glyph name: uni0157	Contours detected: 220	Expected: 2
    +
    +- Glyph name: Rcaron	Contours detected: 470	Expected: 3
    +
    +- Glyph name: rcaron	Contours detected: 217	Expected: 2
    +
    +- Glyph name: Sacute	Contours detected: 220	Expected: 2
    +
    +- Glyph name: sacute	Contours detected: 173	Expected: 2
    +
    +- Glyph name: Scircumflex	Contours detected: 237	Expected: 2
    +
    +- Glyph name: scircumflex	Contours detected: 187	Expected: 2
    +
    +- Glyph name: Scedilla	Contours detected: 443	Expected: 1 or 2
    +
    +- Glyph name: scedilla	Contours detected: 220	Expected: 1 or 2
    +
    +- Glyph name: Scaron	Contours detected: 230	Expected: 2
    +
    +- Glyph name: scaron	Contours detected: 179	Expected: 2
    +
    +- Glyph name: Tcaron	Contours detected: 268	Expected: 2
    +
    +- Glyph name: tcaron	Contours detected: 220	Expected: 2
    +
    +- Glyph name: Tbar	Contours detected: 291	Expected: 1
    +
    +- Glyph name: tbar	Contours detected: 196	Expected: 1
    +
    +- Glyph name: Utilde	Contours detected: 384	Expected: 2
    +
    +- Glyph name: utilde	Contours detected: 384	Expected: 2
    +
    +- Glyph name: Umacron	Contours detected: 378	Expected: 2
    +
    +- Glyph name: umacron	Contours detected: 396	Expected: 2
    +
    +- Glyph name: Ubreve	Contours detected: 401	Expected: 2
    +
    +- Glyph name: ubreve	Contours detected: 376	Expected: 2
    +
    +- Glyph name: Uring	Contours detected: 367	Expected: 3
    +
    +- Glyph name: uring	Contours detected: 363	Expected: 3
    +
    +- Glyph name: Uhungarumlaut	Contours detected: 413	Expected: 3
    +
    +- Glyph name: uhungarumlaut	Contours detected: 364	Expected: 3
    +
    +- Glyph name: Uogonek	Contours detected: 473	Expected: 1
    +
    +- Glyph name: uogonek	Contours detected: 279	Expected: 1
    +
    +- Glyph name: Wcircumflex	Contours detected: 567	Expected: 2
    +
    +- Glyph name: wcircumflex	Contours detected: 258	Expected: 2
    +
    +- Glyph name: Ycircumflex	Contours detected: 281	Expected: 2
    +
    +- Glyph name: ycircumflex	Contours detected: 315	Expected: 2
    +
    +- Glyph name: Ydieresis	Contours detected: 278	Expected: 3
    +
    +- Glyph name: Zacute	Contours detected: 411	Expected: 2
    +
    +- Glyph name: zacute	Contours detected: 209	Expected: 2
    +
    +- Glyph name: Zdotaccent	Contours detected: 426	Expected: 2
    +
    +- Glyph name: zdotaccent	Contours detected: 199	Expected: 2
    +
    +- Glyph name: Zcaron	Contours detected: 421	Expected: 2
    +
    +- Glyph name: zcaron	Contours detected: 215	Expected: 2
    +
    +- Glyph name: longs	Contours detected: 142	Expected: 1
    +
    +- Glyph name: florin	Contours detected: 346	Expected: 1
    +
    +- Glyph name: AEacute	Contours detected: 499	Expected: 3
    +
    +- Glyph name: aeacute	Contours detected: 318	Expected: 4
    +
    +- Glyph name: Oslashacute	Contours detected: 571	Expected: 4
    +
    +- Glyph name: oslashacute	Contours detected: 314	Expected: 4
    +
    +- Glyph name: uni0218	Contours detected: 238	Expected: 2
    +
    +- Glyph name: uni0219	Contours detected: 182	Expected: 2
    +
    +- Glyph name: uni021A	Contours detected: 276	Expected: 2
    +
    +- Glyph name: uni021B	Contours detected: 227	Expected: 2
    +
    +- Glyph name: uni0237	Contours detected: 170	Expected: 1
    +
    +- Glyph name: uni02BC	Contours detected: 20	Expected: 1
    +
    +- Glyph name: circumflex	Contours detected: 25	Expected: 1
    +
    +- Glyph name: caron	Contours detected: 17	Expected: 1
    +
    +- Glyph name: breve	Contours detected: 14	Expected: 1
    +
    +- Glyph name: ring	Contours detected: 1	Expected: 2
    +
    +- Glyph name: ogonek	Contours detected: 81	Expected: 1
    +
    +- Glyph name: tilde	Contours detected: 22	Expected: 1
    +
    +- Glyph name: gravecomb	Contours detected: 6	Expected: 1
    +
    +- Glyph name: acutecomb	Contours detected: 11	Expected: 1
    +
    +- Glyph name: uni0302	Contours detected: 25	Expected: 1
    +
    +- Glyph name: tildecomb	Contours detected: 22	Expected: 1
    +
    +- Glyph name: uni0304	Contours detected: 34	Expected: 1
    +
    +- Glyph name: uni0306	Contours detected: 14	Expected: 1
    +
    +- Glyph name: uni0308	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni030A	Contours detected: 1	Expected: 2
    +
    +- Glyph name: uni030C	Contours detected: 17	Expected: 1
    +
    +- Glyph name: uni0312	Contours detected: 20	Expected: 1
    +
    +- Glyph name: uni0326	Contours detected: 20	Expected: 1
    +
    +- Glyph name: uni0327	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0328	Contours detected: 81	Expected: 1
    +
    +- Glyph name: uni0335	Contours detected: 16	Expected: 1
    +
    +- Glyph name: uni0337	Contours detected: 53	Expected: 1
    +
    +- Glyph name: uni0338	Contours detected: 94	Expected: 1
    +
    +- Glyph name: uni0400	Contours detected: 289	Expected: 2
    +
    +- Glyph name: uni0401	Contours detected: 260	Expected: 3
    +
    +- Glyph name: uni0402	Contours detected: 286	Expected: 1
    +
    +- Glyph name: uni0403	Contours detected: 236	Expected: 2
    +
    +- Glyph name: uni0404	Contours detected: 400	Expected: 1
    +
    +- Glyph name: uni0405	Contours detected: 217	Expected: 1
    +
    +- Glyph name: uni0406	Contours detected: 187	Expected: 1
    +
    +- Glyph name: uni0407	Contours detected: 192	Expected: 3
    +
    +- Glyph name: uni0408	Contours detected: 336	Expected: 1
    +
    +- Glyph name: uni0409	Contours detected: 612	Expected: 2
    +
    +- Glyph name: uni040A	Contours detected: 492	Expected: 2
    +
    +- Glyph name: uni040B	Contours detected: 368	Expected: 1
    +
    +- Glyph name: uni040C	Contours detected: 345	Expected: 2
    +
    +- Glyph name: uni040D	Contours detected: 536	Expected: 2
    +
    +- Glyph name: uni040E	Contours detected: 266	Expected: 2
    +
    +- Glyph name: uni040F	Contours detected: 411	Expected: 1
    +
    +- Glyph name: uni0410	Contours detected: 352	Expected: 2
    +
    +- Glyph name: uni0411	Contours detected: 471	Expected: 2
    +
    +- Glyph name: uni0412	Contours detected: 301	Expected: 3
    +
    +- Glyph name: uni0413	Contours detected: 233	Expected: 1
    +
    +- Glyph name: uni0414	Contours detected: 334	Expected: 2
    +
    +- Glyph name: uni0415	Contours detected: 255	Expected: 1
    +
    +- Glyph name: uni0416	Contours detected: 779	Expected: 1
    +
    +- Glyph name: uni0417	Contours detected: 343	Expected: 1
    +
    +- Glyph name: uni0418	Contours detected: 502	Expected: 1
    +
    +- Glyph name: uni0419	Contours detected: 517	Expected: 2
    +
    +- Glyph name: uni041A	Contours detected: 342	Expected: 1
    +
    +- Glyph name: uni041B	Contours detected: 429	Expected: 1
    +
    +- Glyph name: uni041C	Contours detected: 228	Expected: 1
    +
    +- Glyph name: uni041D	Contours detected: 525	Expected: 1
    +
    +- Glyph name: uni041E	Contours detected: 474	Expected: 2
    +
    +- Glyph name: uni041F	Contours detected: 443	Expected: 1
    +
    +- Glyph name: uni0420	Contours detected: 283	Expected: 1 or 2
    +
    +- Glyph name: uni0421	Contours detected: 374	Expected: 1
    +
    +- Glyph name: uni0422	Contours detected: 255	Expected: 1
    +
    +- Glyph name: uni0423	Contours detected: 251	Expected: 1
    +
    +- Glyph name: uni0424	Contours detected: 595	Expected: 3
    +
    +- Glyph name: uni0425	Contours detected: 356	Expected: 1
    +
    +- Glyph name: uni0426	Contours detected: 451	Expected: 1
    +
    +- Glyph name: uni0427	Contours detected: 339	Expected: 1
    +
    +- Glyph name: uni0428	Contours detected: 640	Expected: 1
    +
    +- Glyph name: uni0429	Contours detected: 459	Expected: 1
    +
    +- Glyph name: uni042A	Contours detected: 455	Expected: 2
    +
    +- Glyph name: uni042B	Contours detected: 520	Expected: 3
    +
    +- Glyph name: uni042C	Contours detected: 231	Expected: 2
    +
    +- Glyph name: uni042D	Contours detected: 335	Expected: 1
    +
    +- Glyph name: uni042E	Contours detected: 585	Expected: 2
    +
    +- Glyph name: uni042F	Contours detected: 435	Expected: 2
    +
    +- Glyph name: uni0430	Contours detected: 229	Expected: 2
    +
    +- Glyph name: uni0431	Contours detected: 262	Expected: 2
    +
    +- Glyph name: uni0432	Contours detected: 349	Expected: 3
    +
    +- Glyph name: uni0433	Contours detected: 91	Expected: 1
    +
    +- Glyph name: uni0434	Contours detected: 433	Expected: 2
    +
    +- Glyph name: uni0435	Contours detected: 198	Expected: 2
    +
    +- Glyph name: uni0436	Contours detected: 454	Expected: 1
    +
    +- Glyph name: uni0437	Contours detected: 176	Expected: 1
    +
    +- Glyph name: uni0438	Contours detected: 293	Expected: 1
    +
    +- Glyph name: uni0439	Contours detected: 324	Expected: 2
    +
    +- Glyph name: uni043A	Contours detected: 278	Expected: 1
    +
    +- Glyph name: uni043B	Contours detected: 276	Expected: 1
    +
    +- Glyph name: uni043C	Contours detected: 309	Expected: 1
    +
    +- Glyph name: uni043D	Contours detected: 222	Expected: 1
    +
    +- Glyph name: uni043E	Contours detected: 250	Expected: 2
    +
    +- Glyph name: uni043F	Contours detected: 188	Expected: 1
    +
    +- Glyph name: uni0440	Contours detected: 338	Expected: 2
    +
    +- Glyph name: uni0441	Contours detected: 239	Expected: 1
    +
    +- Glyph name: uni0442	Contours detected: 159	Expected: 1
    +
    +- Glyph name: uni0443	Contours detected: 352	Expected: 1
    +
    +- Glyph name: uni0444	Contours detected: 434	Expected: 3
    +
    +- Glyph name: uni0445	Contours detected: 207	Expected: 1
    +
    +- Glyph name: uni0446	Contours detected: 338	Expected: 1
    +
    +- Glyph name: uni0447	Contours detected: 298	Expected: 1
    +
    +- Glyph name: uni0448	Contours detected: 302	Expected: 1
    +
    +- Glyph name: uni0449	Contours detected: 384	Expected: 1
    +
    +- Glyph name: uni044A	Contours detected: 237	Expected: 2
    +
    +- Glyph name: uni044B	Contours detected: 273	Expected: 3
    +
    +- Glyph name: uni044C	Contours detected: 222	Expected: 2
    +
    +- Glyph name: uni044D	Contours detected: 141	Expected: 1
    +
    +- Glyph name: uni044E	Contours detected: 354	Expected: 2
    +
    +- Glyph name: uni044F	Contours detected: 230	Expected: 2
    +
    +- Glyph name: uni0450	Contours detected: 204	Expected: 3
    +
    +- Glyph name: uni0451	Contours detected: 203	Expected: 4
    +
    +- Glyph name: uni0452	Contours detected: 463	Expected: 1
    +
    +- Glyph name: uni0453	Contours detected: 102	Expected: 2
    +
    +- Glyph name: uni0454	Contours detected: 221	Expected: 1
    +
    +- Glyph name: uni0455	Contours detected: 162	Expected: 1
    +
    +- Glyph name: uni0456	Contours detected: 116	Expected: 2
    +
    +- Glyph name: uni0457	Contours detected: 101	Expected: 3
    +
    +- Glyph name: uni0458	Contours detected: 208	Expected: 2
    +
    +- Glyph name: uni0459	Contours detected: 272	Expected: 2
    +
    +- Glyph name: uni045A	Contours detected: 270	Expected: 2
    +
    +- Glyph name: uni045B	Contours detected: 438	Expected: 1
    +
    +- Glyph name: uni045C	Contours detected: 289	Expected: 2
    +
    +- Glyph name: uni045D	Contours detected: 299	Expected: 2
    +
    +- Glyph name: uni045E	Contours detected: 383	Expected: 2
    +
    +- Glyph name: uni045F	Contours detected: 349	Expected: 1 or 2
    +
    +- Glyph name: uni0462	Contours detected: 250	Expected: 2
    +
    +- Glyph name: uni0463	Contours detected: 288	Expected: 2
    +
    +- Glyph name: uni046A	Contours detected: 584	Expected: 2
    +
    +- Glyph name: uni046B	Contours detected: 301	Expected: 2
    +
    +- Glyph name: uni0472	Contours detected: 478	Expected: 3
    +
    +- Glyph name: uni0473	Contours detected: 250	Expected: 3
    +
    +- Glyph name: uni0474	Contours detected: 332	Expected: 1
    +
    +- Glyph name: uni0475	Contours detected: 246	Expected: 1
    +
    +- Glyph name: uni0490	Contours detected: 409	Expected: 1
    +
    +- Glyph name: uni0491	Contours detected: 157	Expected: 1
    +
    +- Glyph name: uni0492	Contours detected: 210	Expected: 1
    +
    +- Glyph name: uni0493	Contours detected: 107	Expected: 1
    +
    +- Glyph name: uni0494	Contours detected: 338	Expected: 1
    +
    +- Glyph name: uni0495	Contours detected: 256	Expected: 1
    +
    +- Glyph name: uni0496	Contours detected: 603	Expected: 1 or 2
    +
    +- Glyph name: uni0497	Contours detected: 467	Expected: 1 or 2
    +
    +- Glyph name: uni0498	Contours detected: 320	Expected: 1 or 2
    +
    +- Glyph name: uni0499	Contours detected: 166	Expected: 1 or 2
    +
    +- Glyph name: uni049A	Contours detected: 368	Expected: 1 or 2
    +
    +- Glyph name: uni049B	Contours detected: 403	Expected: 1 or 2
    +
    +- Glyph name: uni049C	Contours detected: 322	Expected: 1
    +
    +- Glyph name: uni049D	Contours detected: 209	Expected: 1
    +
    +- Glyph name: uni04A0	Contours detected: 270	Expected: 1
    +
    +- Glyph name: uni04A1	Contours detected: 243	Expected: 1
    +
    +- Glyph name: uni04A2	Contours detected: 454	Expected: 1 or 2
    +
    +- Glyph name: uni04A3	Contours detected: 323	Expected: 1 or 2
    +
    +- Glyph name: uni04A4	Contours detected: 418	Expected: 1
    +
    +- Glyph name: uni04A5	Contours detected: 293	Expected: 1
    +
    +- Glyph name: uni04AA	Contours detected: 418	Expected: 1 or 2
    +
    +- Glyph name: uni04AB	Contours detected: 244	Expected: 1 or 2
    +
    +- Glyph name: Ustraitcy	Contours detected: 345	Expected: 1
    +
    +- Glyph name: ustraitcy	Contours detected: 240	Expected: 1
    +
    +- Glyph name: Ustraitstrokecy	Contours detected: 333	Expected: 1
    +
    +- Glyph name: ustraitstrokecy	Contours detected: 256	Expected: 1
    +
    +- Glyph name: uni04B6	Contours detected: 445	Expected: 1 or 2
    +
    +- Glyph name: uni04B7	Contours detected: 347	Expected: 1 or 2
    +
    +- Glyph name: uni04B8	Contours detected: 320	Expected: 1
    +
    +- Glyph name: uni04B9	Contours detected: 211	Expected: 1
    +
    +- Glyph name: uni04BA	Contours detected: 305	Expected: 1
    +
    +- Glyph name: uni04BB	Contours detected: 353	Expected: 1
    +
    +- Glyph name: uni04C0	Contours detected: 187	Expected: 1
    +
    +- Glyph name: uni04C1	Contours detected: 794	Expected: 2
    +
    +- Glyph name: uni04C2	Contours detected: 485	Expected: 2
    +
    +- Glyph name: uni04CB	Contours detected: 365	Expected: 1 or 2
    +
    +- Glyph name: uni04CC	Contours detected: 317	Expected: 1 or 2
    +
    +- Glyph name: uni04CF	Contours detected: 248	Expected: 1
    +
    +- Glyph name: uni04D0	Contours detected: 367	Expected: 3
    +
    +- Glyph name: uni04D1	Contours detected: 260	Expected: 3
    +
    +- Glyph name: uni04D2	Contours detected: 357	Expected: 4
    +
    +- Glyph name: uni04D3	Contours detected: 234	Expected: 4
    +
    +- Glyph name: uni04D4	Contours detected: 496	Expected: 2
    +
    +- Glyph name: uni04D5	Contours detected: 307	Expected: 3
    +
    +- Glyph name: uni04D6	Contours detected: 270	Expected: 2
    +
    +- Glyph name: uni04D7	Contours detected: 229	Expected: 3
    +
    +- Glyph name: uni04D8	Contours detected: 318	Expected: 2
    +
    +- Glyph name: uni04D9	Contours detected: 290	Expected: 2
    +
    +- Glyph name: uni04DC	Contours detected: 784	Expected: 3
    +
    +- Glyph name: uni04DD	Contours detected: 459	Expected: 3
    +
    +- Glyph name: uni04DE	Contours detected: 348	Expected: 3
    +
    +- Glyph name: uni04DF	Contours detected: 181	Expected: 3
    +
    +- Glyph name: uni04E2	Contours detected: 536	Expected: 2
    +
    +- Glyph name: uni04E3	Contours detected: 327	Expected: 2
    +
    +- Glyph name: uni04E4	Contours detected: 507	Expected: 3
    +
    +- Glyph name: uni04E5	Contours detected: 298	Expected: 3
    +
    +- Glyph name: uni04E6	Contours detected: 479	Expected: 4
    +
    +- Glyph name: uni04E7	Contours detected: 255	Expected: 4
    +
    +- Glyph name: uni04E8	Contours detected: 461	Expected: 3
    +
    +- Glyph name: uni04E9	Contours detected: 250	Expected: 3
    +
    +- Glyph name: uni04EE	Contours detected: 285	Expected: 2
    +
    +- Glyph name: uni04EF	Contours detected: 386	Expected: 2
    +
    +- Glyph name: uni04F0	Contours detected: 256	Expected: 3
    +
    +- Glyph name: uni04F1	Contours detected: 357	Expected: 3
    +
    +- Glyph name: uni04F2	Contours detected: 253	Expected: 3
    +
    +- Glyph name: uni04F3	Contours detected: 354	Expected: 3
    +
    +- Glyph name: uni04F4	Contours detected: 344	Expected: 3
    +
    +- Glyph name: uni04F5	Contours detected: 303	Expected: 3
    +
    +- Glyph name: uni04F6	Contours detected: 344	Expected: 1 or 2
    +
    +- Glyph name: uni04F7	Contours detected: 214	Expected: 1 or 2
    +
    +- Glyph name: uni04F8	Contours detected: 525	Expected: 5
    +
    +- Glyph name: uni04F9	Contours detected: 278	Expected: 5
    +
    +- Glyph name: uni051A	Contours detected: 431	Expected: 2
    +
    +- Glyph name: uni051B	Contours detected: 397	Expected: 2
    +
    +- Glyph name: uni051C	Contours detected: 547	Expected: 1
    +
    +- Glyph name: uni051D	Contours detected: 233	Expected: 1
    +
    +- Glyph name: uni0524	Contours detected: 355	Expected: 1
    +
    +- Glyph name: uni0525	Contours detected: 311	Expected: 1
    +
    +- Glyph name: Wgrave	Contours detected: 581	Expected: 2
    +
    +- Glyph name: wgrave	Contours detected: 239	Expected: 2
    +
    +- Glyph name: Wacute	Contours detected: 550	Expected: 2
    +
    +- Glyph name: wacute	Contours detected: 244	Expected: 2
    +
    +- Glyph name: Wdieresis	Contours detected: 564	Expected: 3
    +
    +- Glyph name: wdieresis	Contours detected: 238	Expected: 3
    +
    +- Glyph name: uni1E9E	Contours detected: 431	Expected: 1
    +
    +- Glyph name: Ygrave	Contours detected: 295	Expected: 2
    +
    +- Glyph name: ygrave	Contours detected: 296	Expected: 2
    +
    +- Glyph name: endash	Contours detected: 53	Expected: 1
    +
    +- Glyph name: emdash	Contours detected: 135	Expected: 1
    +
    +- Glyph name: quoteleft	Contours detected: 75	Expected: 1
    +
    +- Glyph name: quoteright	Contours detected: 27	Expected: 1
    +
    +- Glyph name: quotesinglbase	Contours detected: 77	Expected: 1
    +
    +- Glyph name: quotedblleft	Contours detected: 86	Expected: 2
    +
    +- Glyph name: quotedblright	Contours detected: 136	Expected: 2
    +
    +- Glyph name: quotedblbase	Contours detected: 120	Expected: 2
    +
    +- Glyph name: dagger	Contours detected: 175	Expected: 1 or 2
    +
    +- Glyph name: daggerdbl	Contours detected: 398	Expected: 1 or 3
    +
    +- Glyph name: bullet	Contours detected: 89	Expected: 1
    +
    +- Glyph name: ellipsis	Contours detected: 132	Expected: 3
    +
    +- Glyph name: perthousand	Contours detected: 412	Expected: 6 or 7
    +
    +- Glyph name: guilsinglleft	Contours detected: 70	Expected: 1
    +
    +- Glyph name: guilsinglright	Contours detected: 56	Expected: 1
    +
    +- Glyph name: fraction	Contours detected: 123	Expected: 1
    +
    +- Glyph name: uni2070	Contours detected: 69	Expected: 2 or 3
    +
    +- Glyph name: uni2074	Contours detected: 33	Expected: 1 or 2
    +
    +- Glyph name: uni2075	Contours detected: 156	Expected: 1
    +
    +- Glyph name: uni2076	Contours detected: 34	Expected: 2
    +
    +- Glyph name: uni2077	Contours detected: 58	Expected: 1
    +
    +- Glyph name: uni2078	Contours detected: 146	Expected: 3
    +
    +- Glyph name: uni2079	Contours detected: 34	Expected: 2
    +
    +- Glyph name: uni207D	Contours detected: 37	Expected: 1
    +
    +- Glyph name: uni207E	Contours detected: 59	Expected: 1
    +
    +- Glyph name: uni2080	Contours detected: 69	Expected: 2 or 3
    +
    +- Glyph name: uni2081	Contours detected: 17	Expected: 1
    +
    +- Glyph name: uni2082	Contours detected: 98	Expected: 1
    +
    +- Glyph name: uni2083	Contours detected: 77	Expected: 1
    +
    +- Glyph name: uni2084	Contours detected: 33	Expected: 1 or 2
    +
    +- Glyph name: uni2085	Contours detected: 156	Expected: 1
    +
    +- Glyph name: uni2086	Contours detected: 34	Expected: 2
    +
    +- Glyph name: uni2087	Contours detected: 58	Expected: 1
    +
    +- Glyph name: uni2088	Contours detected: 146	Expected: 3
    +
    +- Glyph name: uni2089	Contours detected: 34	Expected: 2
    +
    +- Glyph name: uni208D	Contours detected: 37	Expected: 1
    +
    +- Glyph name: uni208E	Contours detected: 59	Expected: 1
    +
    +- Glyph name: uni20AA	Contours detected: 506	Expected: 2
    +
    +- Glyph name: Euro	Contours detected: 487	Expected: 1 or 2
    +
    +- Glyph name: uni20AE	Contours detected: 213	Expected: 1
    +
    +- Glyph name: uni20B4	Contours detected: 313	Expected: 1 or 2
    +
    +- Glyph name: uni20B8	Contours detected: 222	Expected: 2
    +
    +- Glyph name: uni20B9	Contours detected: 278	Expected: 1
    +
    +- Glyph name: uni20BD	Contours detected: 433	Expected: 2
    +
    +- Glyph name: uni2116	Contours detected: 545	Expected: 3 or 4
    +
    +- Glyph name: trademark	Contours detected: 76	Expected: 2
    +
    +- Glyph name: estimated	Contours detected: 314	Expected: 2
    +
    +- Glyph name: uni2153	Contours detected: 217	Expected: 3
    +
    +- Glyph name: uni2154	Contours detected: 298	Expected: 1 or 3
    +
    +- Glyph name: oneeighth	Contours detected: 286	Expected: 5
    +
    +- Glyph name: threeeighths	Contours detected: 346	Expected: 5
    +
    +- Glyph name: fiveeighths	Contours detected: 425	Expected: 5
    +
    +- Glyph name: seveneighths	Contours detected: 327	Expected: 5
    +
    +- Glyph name: partialdiff	Contours detected: 306	Expected: 2
    +
    +- Glyph name: uni2206	Contours detected: 275	Expected: 2
    +
    +- Glyph name: product	Contours detected: 478	Expected: 1
    +
    +- Glyph name: summation	Contours detected: 460	Expected: 1
    +
    +- Glyph name: minus	Contours detected: 40	Expected: 1
    +
    +- Glyph name: uni2215	Contours detected: 215	Expected: 1
    +
    +- Glyph name: radical	Contours detected: 269	Expected: 1
    +
    +- Glyph name: infinity	Contours detected: 260	Expected: 3
    +
    +- Glyph name: integral	Contours detected: 206	Expected: 1
    +
    +- Glyph name: approxequal	Contours detected: 140	Expected: 2
    +
    +- Glyph name: notequal	Contours detected: 142	Expected: 1
    +
    +- Glyph name: lessequal	Contours detected: 141	Expected: 2
    +
    +- Glyph name: greaterequal	Contours detected: 155	Expected: 2
    +
    +- Glyph name: lozenge	Contours detected: 328	Expected: 2
    +
    +- Glyph name: fi	Contours detected: 364	Expected: 1, 2 or 3
    +
    +- Glyph name: fl	Contours detected: 306	Expected: 1 or 2
    +
    +- Glyph name: A	Contours detected: 352	Expected: 2
    +
    +- Glyph name: AE	Contours detected: 496	Expected: 2
    +
    +- Glyph name: AEacute	Contours detected: 499	Expected: 3
    +
    +- Glyph name: Aacute	Contours detected: 355	Expected: 3
    +
    +- Glyph name: Abreve	Contours detected: 387	Expected: 3
    +
    +- Glyph name: Acircumflex	Contours detected: 372	Expected: 3
    +
    +- Glyph name: Adieresis	Contours detected: 369	Expected: 4
    +
    +- Glyph name: Agrave	Contours detected: 386	Expected: 3
    +
    +- Glyph name: Amacron	Contours detected: 364	Expected: 3
    +
    +- Glyph name: Aogonek	Contours detected: 574	Expected: 2 or 3
    +
    +- Glyph name: Aring	Contours detected: 353	Expected: 3 or 4
    +
    +- Glyph name: Atilde	Contours detected: 370	Expected: 3
    +
    +- Glyph name: B	Contours detected: 301	Expected: 2 or 3
    +
    +- Glyph name: C	Contours detected: 374	Expected: 1
    +
    +- Glyph name: Cacute	Contours detected: 377	Expected: 2
    +
    +- Glyph name: Ccaron	Contours detected: 387	Expected: 2
    +
    +- Glyph name: Ccedilla	Contours detected: 466	Expected: 1 or 2
    +
    +- Glyph name: Ccircumflex	Contours detected: 394	Expected: 2
    +
    +- Glyph name: Cdotaccent	Contours detected: 392	Expected: 2
    +
    +- Glyph name: D	Contours detected: 420	Expected: 2
    +
    +- Glyph name: Dcaron	Contours detected: 433	Expected: 3
    +
    +- Glyph name: Dcroat	Contours detected: 482	Expected: 2
    +
    +- Glyph name: E	Contours detected: 255	Expected: 1
    +
    +- Glyph name: Eacute	Contours detected: 258	Expected: 2
    +
    +- Glyph name: Ebreve	Contours detected: 290	Expected: 2
    +
    +- Glyph name: Ecaron	Contours detected: 268	Expected: 2
    +
    +- Glyph name: Ecircumflex	Contours detected: 275	Expected: 2
    +
    +- Glyph name: Edieresis	Contours detected: 272	Expected: 3
    +
    +- Glyph name: Edotaccent	Contours detected: 273	Expected: 2
    +
    +- Glyph name: Egrave	Contours detected: 289	Expected: 2
    +
    +- Glyph name: Emacron	Contours detected: 267	Expected: 2
    +
    +- Glyph name: Eng	Contours detected: 488	Expected: 1
    +
    +- Glyph name: Eogonek	Contours detected: 255	Expected: 1 or 2
    +
    +- Glyph name: Eth	Contours detected: 371	Expected: 2
    +
    +- Glyph name: Euro	Contours detected: 487	Expected: 1 or 2
    +
    +- Glyph name: F	Contours detected: 325	Expected: 1
    +
    +- Glyph name: G	Contours detected: 394	Expected: 1
    +
    +- Glyph name: Gbreve	Contours detected: 429	Expected: 2
    +
    +- Glyph name: Gcircumflex	Contours detected: 414	Expected: 2
    +
    +- Glyph name: Gdotaccent	Contours detected: 412	Expected: 2
    +
    +- Glyph name: H	Contours detected: 525	Expected: 1
    +
    +- Glyph name: Hbar	Contours detected: 499	Expected: 2
    +
    +- Glyph name: Hcircumflex	Contours detected: 545	Expected: 2
    +
    +- Glyph name: I	Contours detected: 187	Expected: 1
    +
    +- Glyph name: IJ	Contours detected: 419	Expected: 1 or 2
    +
    +- Glyph name: Iacute	Contours detected: 190	Expected: 2
    +
    +- Glyph name: Ibreve	Contours detected: 222	Expected: 2
    +
    +- Glyph name: Icircumflex	Contours detected: 207	Expected: 2
    +
    +- Glyph name: Idieresis	Contours detected: 204	Expected: 3
    +
    +- Glyph name: Idotaccent	Contours detected: 205	Expected: 2
    +
    +- Glyph name: Igrave	Contours detected: 221	Expected: 2
    +
    +- Glyph name: Imacron	Contours detected: 199	Expected: 2
    +
    +- Glyph name: Iogonek	Contours detected: 280	Expected: 1 or 2
    +
    +- Glyph name: Itilde	Contours detected: 205	Expected: 2
    +
    +- Glyph name: J	Contours detected: 336	Expected: 1
    +
    +- Glyph name: Jcircumflex	Contours detected: 356	Expected: 2
    +
    +- Glyph name: K	Contours detected: 450	Expected: 1 or 2
    +
    +- Glyph name: L	Contours detected: 286	Expected: 1
    +
    +- Glyph name: Lacute	Contours detected: 289	Expected: 2
    +
    +- Glyph name: Lcaron	Contours detected: 299	Expected: 2
    +
    +- Glyph name: Ldot	Contours detected: 287	Expected: 2
    +
    +- Glyph name: Lslash	Contours detected: 258	Expected: 1
    +
    +- Glyph name: M	Contours detected: 228	Expected: 1
    +
    +- Glyph name: N	Contours detected: 418	Expected: 1
    +
    +- Glyph name: Nacute	Contours detected: 421	Expected: 2
    +
    +- Glyph name: Ncaron	Contours detected: 431	Expected: 2
    +
    +- Glyph name: Ntilde	Contours detected: 436	Expected: 2
    +
    +- Glyph name: O	Contours detected: 474	Expected: 2
    +
    +- Glyph name: OE	Contours detected: 546	Expected: 2
    +
    +- Glyph name: Oacute	Contours detected: 477	Expected: 3
    +
    +- Glyph name: Ocircumflex	Contours detected: 494	Expected: 3
    +
    +- Glyph name: Odieresis	Contours detected: 491	Expected: 4
    +
    +- Glyph name: Ograve	Contours detected: 508	Expected: 3
    +
    +- Glyph name: Ohungarumlaut	Contours detected: 521	Expected: 4
    +
    +- Glyph name: Omacron	Contours detected: 486	Expected: 3
    +
    +- Glyph name: Oslash	Contours detected: 568	Expected: 2 or 3
    +
    +- Glyph name: Oslashacute	Contours detected: 571	Expected: 4
    +
    +- Glyph name: Otilde	Contours detected: 492	Expected: 3
    +
    +- Glyph name: P	Contours detected: 283	Expected: 1 or 2
    +
    +- Glyph name: Q	Contours detected: 431	Expected: 2
    +
    +- Glyph name: R	Contours detected: 457	Expected: 1 or 2
    +
    +- Glyph name: Racute	Contours detected: 460	Expected: 3
    +
    +- Glyph name: Rcaron	Contours detected: 470	Expected: 3
    +
    +- Glyph name: S	Contours detected: 217	Expected: 1
    +
    +- Glyph name: Sacute	Contours detected: 220	Expected: 2
    +
    +- Glyph name: Scaron	Contours detected: 230	Expected: 2
    +
    +- Glyph name: Scircumflex	Contours detected: 237	Expected: 2
    +
    +- Glyph name: T	Contours detected: 255	Expected: 1
    +
    +- Glyph name: Tbar	Contours detected: 291	Expected: 1
    +
    +- Glyph name: Tcaron	Contours detected: 268	Expected: 2
    +
    +- Glyph name: Thorn	Contours detected: 363	Expected: 1 or 2
    +
    +- Glyph name: U	Contours detected: 366	Expected: 1
    +
    +- Glyph name: Uacute	Contours detected: 369	Expected: 2
    +
    +- Glyph name: Ubreve	Contours detected: 401	Expected: 2
    +
    +- Glyph name: Ucircumflex	Contours detected: 386	Expected: 2
    +
    +- Glyph name: Udieresis	Contours detected: 383	Expected: 3
    +
    +- Glyph name: Ugrave	Contours detected: 400	Expected: 2
    +
    +- Glyph name: Uhungarumlaut	Contours detected: 413	Expected: 3
    +
    +- Glyph name: Umacron	Contours detected: 378	Expected: 2
    +
    +- Glyph name: Uogonek	Contours detected: 473	Expected: 1
    +
    +- Glyph name: Uring	Contours detected: 367	Expected: 3
    +
    +- Glyph name: Utilde	Contours detected: 384	Expected: 2
    +
    +- Glyph name: V	Contours detected: 290	Expected: 1
    +
    +- Glyph name: W	Contours detected: 547	Expected: 1 or 2
    +
    +- Glyph name: Wacute	Contours detected: 550	Expected: 2
    +
    +- Glyph name: Wcircumflex	Contours detected: 567	Expected: 2
    +
    +- Glyph name: Wdieresis	Contours detected: 564	Expected: 3
    +
    +- Glyph name: Wgrave	Contours detected: 581	Expected: 2
    +
    +- Glyph name: X	Contours detected: 356	Expected: 1
    +
    +- Glyph name: Y	Contours detected: 261	Expected: 1
    +
    +- Glyph name: Yacute	Contours detected: 264	Expected: 2
    +
    +- Glyph name: Ycircumflex	Contours detected: 281	Expected: 2
    +
    +- Glyph name: Ydieresis	Contours detected: 278	Expected: 3
    +
    +- Glyph name: Ygrave	Contours detected: 295	Expected: 2
    +
    +- Glyph name: Z	Contours detected: 408	Expected: 1
    +
    +- Glyph name: Zacute	Contours detected: 411	Expected: 2
    +
    +- Glyph name: Zcaron	Contours detected: 421	Expected: 2
    +
    +- Glyph name: Zdotaccent	Contours detected: 426	Expected: 2
    +
    +- Glyph name: a	Contours detected: 229	Expected: 2
    +
    +- Glyph name: aacute	Contours detected: 240	Expected: 3
    +
    +- Glyph name: abreve	Contours detected: 243	Expected: 3
    +
    +- Glyph name: acircumflex	Contours detected: 254	Expected: 3
    +
    +- Glyph name: acute	Contours detected: 11	Expected: 1
    +
    +- Glyph name: adieresis	Contours detected: 234	Expected: 4
    +
    +- Glyph name: ae	Contours detected: 307	Expected: 3
    +
    +- Glyph name: aeacute	Contours detected: 318	Expected: 4
    +
    +- Glyph name: agrave	Contours detected: 235	Expected: 3
    +
    +- Glyph name: amacron	Contours detected: 263	Expected: 3
    +
    +- Glyph name: ampersand	Contours detected: 280	Expected: 1, 2 or 3
    +
    +- Glyph name: aogonek	Contours detected: 265	Expected: 2
    +
    +- Glyph name: approxequal	Contours detected: 140	Expected: 2
    +
    +- Glyph name: aring	Contours detected: 230	Expected: 4
    +
    +- Glyph name: asciicircum	Contours detected: 16	Expected: 1
    +
    +- Glyph name: asciitilde	Contours detected: 100	Expected: 1
    +
    +- Glyph name: asterisk	Contours detected: 145	Expected: 1 or 4
    +
    +- Glyph name: at	Contours detected: 212	Expected: 2
    +
    +- Glyph name: atilde	Contours detected: 251	Expected: 3
    +
    +- Glyph name: b	Contours detected: 345	Expected: 2
    +
    +- Glyph name: backslash	Contours detected: 134	Expected: 1
    +
    +- Glyph name: bar	Contours detected: 235	Expected: 1
    +
    +- Glyph name: braceleft	Contours detected: 250	Expected: 1
    +
    +- Glyph name: braceright	Contours detected: 272	Expected: 1
    +
    +- Glyph name: bracketleft	Contours detected: 339	Expected: 1
    +
    +- Glyph name: bracketright	Contours detected: 240	Expected: 1
    +
    +- Glyph name: breve	Contours detected: 14	Expected: 1
    +
    +- Glyph name: brokenbar	Contours detected: 154	Expected: 2
    +
    +- Glyph name: bullet	Contours detected: 89	Expected: 1
    +
    +- Glyph name: c	Contours detected: 239	Expected: 1
    +
    +- Glyph name: cacute	Contours detected: 250	Expected: 2
    +
    +- Glyph name: caron	Contours detected: 17	Expected: 1
    +
    +- Glyph name: ccaron	Contours detected: 256	Expected: 2
    +
    +- Glyph name: ccedilla	Contours detected: 237	Expected: 1 or 2
    +
    +- Glyph name: ccircumflex	Contours detected: 264	Expected: 2
    +
    +- Glyph name: cdotaccent	Contours detected: 240	Expected: 2
    +
    +- Glyph name: cedilla	Contours detected: 2	Expected: 1
    +
    +- Glyph name: cent	Contours detected: 278	Expected: 1 or 2
    +
    +- Glyph name: circumflex	Contours detected: 25	Expected: 1
    +
    +- Glyph name: colon	Contours detected: 107	Expected: 2
    +
    +- Glyph name: comma	Contours detected: 80	Expected: 1
    +
    +- Glyph name: copyright	Contours detected: 254	Expected: 3
    +
    +- Glyph name: currency	Contours detected: 167	Expected: 2
    +
    +- Glyph name: d	Contours detected: 465	Expected: 2
    +
    +- Glyph name: dagger	Contours detected: 175	Expected: 1 or 2
    +
    +- Glyph name: daggerdbl	Contours detected: 398	Expected: 1 or 3
    +
    +- Glyph name: dcaron	Contours detected: 478	Expected: 3
    +
    +- Glyph name: dcroat	Contours detected: 295	Expected: 2
    +
    +- Glyph name: degree	Contours detected: 79	Expected: 2
    +
    +- Glyph name: dieresis	Contours detected: 5	Expected: 2
    +
    +- Glyph name: divide	Contours detected: 188	Expected: 3
    +
    +- Glyph name: dollar	Contours detected: 474	Expected: 1, 3 or 5
    +
    +- Glyph name: dotlessi	Contours detected: 96	Expected: 1
    +
    +- Glyph name: e	Contours detected: 198	Expected: 2
    +
    +- Glyph name: eacute	Contours detected: 209	Expected: 3
    +
    +- Glyph name: ebreve	Contours detected: 212	Expected: 3
    +
    +- Glyph name: ecaron	Contours detected: 215	Expected: 3
    +
    +- Glyph name: ecircumflex	Contours detected: 223	Expected: 3
    +
    +- Glyph name: edieresis	Contours detected: 203	Expected: 4
    +
    +- Glyph name: edotaccent	Contours detected: 199	Expected: 3
    +
    +- Glyph name: egrave	Contours detected: 204	Expected: 3
    +
    +- Glyph name: eight	Contours detected: 452	Expected: 3
    +
    +- Glyph name: ellipsis	Contours detected: 132	Expected: 3
    +
    +- Glyph name: emacron	Contours detected: 232	Expected: 3
    +
    +- Glyph name: emdash	Contours detected: 135	Expected: 1
    +
    +- Glyph name: endash	Contours detected: 53	Expected: 1
    +
    +- Glyph name: eng	Contours detected: 420	Expected: 1
    +
    +- Glyph name: eogonek	Contours detected: 237	Expected: 2
    +
    +- Glyph name: equal	Contours detected: 119	Expected: 2
    +
    +- Glyph name: estimated	Contours detected: 314	Expected: 2
    +
    +- Glyph name: eth	Contours detected: 312	Expected: 2
    +
    +- Glyph name: exclam	Contours detected: 164	Expected: 2
    +
    +- Glyph name: exclamdown	Contours detected: 148	Expected: 2
    +
    +- Glyph name: f	Contours detected: 307	Expected: 1
    +
    +- Glyph name: fi	Contours detected: 364	Expected: 3
    +
    +- Glyph name: five	Contours detected: 406	Expected: 1
    +
    +- Glyph name: fiveeighths	Contours detected: 425	Expected: 5
    +
    +- Glyph name: fl	Contours detected: 306	Expected: 2
    +
    +- Glyph name: four	Contours detected: 344	Expected: 1 or 2
    +
    +- Glyph name: fraction	Contours detected: 123	Expected: 1
    +
    +- Glyph name: g	Contours detected: 331	Expected: 2 or 3
    +
    +- Glyph name: gbreve	Contours detected: 345	Expected: 3 or 4
    +
    +- Glyph name: gcircumflex	Contours detected: 356	Expected: 3 or 4
    +
    +- Glyph name: gdotaccent	Contours detected: 332	Expected: 3 or 4
    +
    +- Glyph name: germandbls	Contours detected: 307	Expected: 1
    +
    +- Glyph name: grave	Contours detected: 6	Expected: 1
    +
    +- Glyph name: greater	Contours detected: 120	Expected: 1
    +
    +- Glyph name: greaterequal	Contours detected: 155	Expected: 2
    +
    +- Glyph name: guillemotleft	Contours detected: 203	Expected: 2
    +
    +- Glyph name: guillemotright	Contours detected: 228	Expected: 2
    +
    +- Glyph name: guilsinglleft	Contours detected: 70	Expected: 1
    +
    +- Glyph name: guilsinglright	Contours detected: 56	Expected: 1
    +
    +- Glyph name: h	Contours detected: 353	Expected: 1
    +
    +- Glyph name: hbar	Contours detected: 336	Expected: 1
    +
    +- Glyph name: hcircumflex	Contours detected: 378	Expected: 2
    +
    +- Glyph name: hyphen	Contours detected: 70	Expected: 1
    +
    +- Glyph name: i	Contours detected: 116	Expected: 2
    +
    +- Glyph name: iacute	Contours detected: 107	Expected: 2
    +
    +- Glyph name: ibreve	Contours detected: 110	Expected: 2
    +
    +- Glyph name: icircumflex	Contours detected: 121	Expected: 2
    +
    +- Glyph name: idieresis	Contours detected: 101	Expected: 3
    +
    +- Glyph name: igrave	Contours detected: 102	Expected: 2
    +
    +- Glyph name: ij	Contours detected: 324	Expected: 3 or 4
    +
    +- Glyph name: imacron	Contours detected: 130	Expected: 2
    +
    +- Glyph name: infinity	Contours detected: 260	Expected: 3
    +
    +- Glyph name: integral	Contours detected: 206	Expected: 1
    +
    +- Glyph name: iogonek	Contours detected: 167	Expected: 2 or 3
    +
    +- Glyph name: itilde	Contours detected: 118	Expected: 2
    +
    +- Glyph name: j	Contours detected: 208	Expected: 2
    +
    +- Glyph name: jcircumflex	Contours detected: 195	Expected: 2
    +
    +- Glyph name: k	Contours detected: 298	Expected: 1 or 2
    +
    +- Glyph name: kgreenlandic	Contours detected: 296	Expected: 1 or 2
    +
    +- Glyph name: l	Contours detected: 248	Expected: 1
    +
    +- Glyph name: lacute	Contours detected: 259	Expected: 2
    +
    +- Glyph name: lcaron	Contours detected: 261	Expected: 2
    +
    +- Glyph name: ldot	Contours detected: 249	Expected: 2
    +
    +- Glyph name: less	Contours detected: 183	Expected: 1
    +
    +- Glyph name: lessequal	Contours detected: 141	Expected: 2
    +
    +- Glyph name: logicalnot	Contours detected: 62	Expected: 1
    +
    +- Glyph name: longs	Contours detected: 142	Expected: 1
    +
    +- Glyph name: lozenge	Contours detected: 328	Expected: 2
    +
    +- Glyph name: lslash	Contours detected: 229	Expected: 1
    +
    +- Glyph name: m	Contours detected: 289	Expected: 1
    +
    +- Glyph name: macron	Contours detected: 34	Expected: 1
    +
    +- Glyph name: minus	Contours detected: 40	Expected: 1
    +
    +- Glyph name: multiply	Contours detected: 158	Expected: 1
    +
    +- Glyph name: n	Contours detected: 257	Expected: 1
    +
    +- Glyph name: nacute	Contours detected: 268	Expected: 2
    +
    +- Glyph name: napostrophe	Contours detected: 277	Expected: 2
    +
    +- Glyph name: ncaron	Contours detected: 274	Expected: 2
    +
    +- Glyph name: nine	Contours detected: 316	Expected: 1 or 2
    +
    +- Glyph name: notequal	Contours detected: 142	Expected: 1
    +
    +- Glyph name: ntilde	Contours detected: 279	Expected: 2
    +
    +- Glyph name: numbersign	Contours detected: 256	Expected: 2
    +
    +- Glyph name: o	Contours detected: 250	Expected: 2
    +
    +- Glyph name: oacute	Contours detected: 261	Expected: 3
    +
    +- Glyph name: ocircumflex	Contours detected: 275	Expected: 3
    +
    +- Glyph name: odieresis	Contours detected: 255	Expected: 4
    +
    +- Glyph name: oe	Contours detected: 431	Expected: 3
    +
    +- Glyph name: ogonek	Contours detected: 81	Expected: 1
    +
    +- Glyph name: ograve	Contours detected: 256	Expected: 3
    +
    +- Glyph name: ohungarumlaut	Contours detected: 252	Expected: 4
    +
    +- Glyph name: omacron	Contours detected: 284	Expected: 3
    +
    +- Glyph name: one	Contours detected: 277	Expected: 1
    +
    +- Glyph name: oneeighth	Contours detected: 286	Expected: 5
    +
    +- Glyph name: onehalf	Contours detected: 238	Expected: 3
    +
    +- Glyph name: onequarter	Contours detected: 173	Expected: 3 or 4
    +
    +- Glyph name: ordfeminine	Contours detected: 63	Expected: 2 or 3
    +
    +- Glyph name: ordmasculine	Contours detected: 27	Expected: 2 or 3
    +
    +- Glyph name: oslash	Contours detected: 303	Expected: 3
    +
    +- Glyph name: oslashacute	Contours detected: 314	Expected: 4
    +
    +- Glyph name: otilde	Contours detected: 272	Expected: 3
    +
    +- Glyph name: p	Contours detected: 338	Expected: 2
    +
    +- Glyph name: paragraph	Contours detected: 264	Expected: 1, 2 or 3
    +
    +- Glyph name: parenleft	Contours detected: 262	Expected: 1
    +
    +- Glyph name: parenright	Contours detected: 205	Expected: 1
    +
    +- Glyph name: partialdiff	Contours detected: 306	Expected: 2
    +
    +- Glyph name: percent	Contours detected: 336	Expected: 5
    +
    +- Glyph name: period	Contours detected: 20	Expected: 1
    +
    +- Glyph name: periodcentered	Contours detected: 78	Expected: 1
    +
    +- Glyph name: perthousand	Contours detected: 412	Expected: 6 or 7
    +
    +- Glyph name: plus	Contours detected: 183	Expected: 1
    +
    +- Glyph name: plusminus	Contours detected: 245	Expected: 1 or 2
    +
    +- Glyph name: product	Contours detected: 478	Expected: 1
    +
    +- Glyph name: q	Contours detected: 397	Expected: 2
    +
    +- Glyph name: question	Contours detected: 285	Expected: 2
    +
    +- Glyph name: questiondown	Contours detected: 214	Expected: 2
    +
    +- Glyph name: quotedbl	Contours detected: 34	Expected: 2
    +
    +- Glyph name: quotedblbase	Contours detected: 120	Expected: 2
    +
    +- Glyph name: quotedblleft	Contours detected: 86	Expected: 2
    +
    +- Glyph name: quotedblright	Contours detected: 136	Expected: 2
    +
    +- Glyph name: quoteleft	Contours detected: 75	Expected: 1
    +
    +- Glyph name: quoteright	Contours detected: 27	Expected: 1
    +
    +- Glyph name: quotesinglbase	Contours detected: 77	Expected: 1
    +
    +- Glyph name: quotesingle	Contours detected: 27	Expected: 1
    +
    +- Glyph name: r	Contours detected: 200	Expected: 1
    +
    +- Glyph name: racute	Contours detected: 211	Expected: 2
    +
    +- Glyph name: radical	Contours detected: 269	Expected: 1
    +
    +- Glyph name: rcaron	Contours detected: 217	Expected: 2
    +
    +- Glyph name: registered	Contours detected: 315	Expected: 3 or 4
    +
    +- Glyph name: ring	Contours detected: 1	Expected: 2
    +
    +- Glyph name: s	Contours detected: 162	Expected: 1
    +
    +- Glyph name: sacute	Contours detected: 173	Expected: 2
    +
    +- Glyph name: scaron	Contours detected: 179	Expected: 2
    +
    +- Glyph name: scircumflex	Contours detected: 187	Expected: 2
    +
    +- Glyph name: section	Contours detected: 505	Expected: 2
    +
    +- Glyph name: semicolon	Contours detected: 154	Expected: 2
    +
    +- Glyph name: seven	Contours detected: 291	Expected: 1
    +
    +- Glyph name: seveneighths	Contours detected: 327	Expected: 5
    +
    +- Glyph name: six	Contours detected: 407	Expected: 1 or 2
    +
    +- Glyph name: slash	Contours detected: 215	Expected: 1
    +
    +- Glyph name: sterling	Contours detected: 317	Expected: 1 or 2
    +
    +- Glyph name: summation	Contours detected: 460	Expected: 1
    +
    +- Glyph name: t	Contours detected: 207	Expected: 1
    +
    +- Glyph name: tbar	Contours detected: 196	Expected: 1
    +
    +- Glyph name: tcaron	Contours detected: 220	Expected: 2
    +
    +- Glyph name: thorn	Contours detected: 494	Expected: 2
    +
    +- Glyph name: three	Contours detected: 411	Expected: 1
    +
    +- Glyph name: threeeighths	Contours detected: 346	Expected: 5
    +
    +- Glyph name: threequarters	Contours detected: 233	Expected: 3 or 4
    +
    +- Glyph name: tilde	Contours detected: 22	Expected: 1
    +
    +- Glyph name: trademark	Contours detected: 76	Expected: 2
    +
    +- Glyph name: two	Contours detected: 371	Expected: 1
    +
    +- Glyph name: u	Contours detected: 362	Expected: 1
    +
    +- Glyph name: uacute	Contours detected: 373	Expected: 2
    +
    +- Glyph name: ubreve	Contours detected: 376	Expected: 2
    +
    +- Glyph name: ucircumflex	Contours detected: 387	Expected: 2
    +
    +- Glyph name: udieresis	Contours detected: 367	Expected: 3
    +
    +- Glyph name: ugrave	Contours detected: 368	Expected: 2
    +
    +- Glyph name: uhungarumlaut	Contours detected: 364	Expected: 3
    +
    +- Glyph name: umacron	Contours detected: 396	Expected: 2
    +
    +- Glyph name: underscore	Contours detected: 66	Expected: 1
    +
    +- Glyph name: uni00AD	Contours detected: 70	Expected: 0
    +
    +- Glyph name: uni00B5	Contours detected: 373	Expected: 1
    +
    +- Glyph name: uni0122	Contours detected: 415	Expected: 2
    +
    +- Glyph name: uni0123	Contours detected: 351	Expected: 3 or 4
    +
    +- Glyph name: uni0136	Contours detected: 471	Expected: 2 or 3
    +
    +- Glyph name: uni0137	Contours detected: 318	Expected: 2 or 3
    +
    +- Glyph name: uni013B	Contours detected: 307	Expected: 2
    +
    +- Glyph name: uni013C	Contours detected: 268	Expected: 2
    +
    +- Glyph name: uni0145	Contours detected: 439	Expected: 2
    +
    +- Glyph name: uni0146	Contours detected: 277	Expected: 2
    +
    +- Glyph name: uni0156	Contours detected: 478	Expected: 3
    +
    +- Glyph name: uni0157	Contours detected: 220	Expected: 2
    +
    +- Glyph name: uni0218	Contours detected: 238	Expected: 2
    +
    +- Glyph name: uni0219	Contours detected: 182	Expected: 2
    +
    +- Glyph name: uni021A	Contours detected: 276	Expected: 2
    +
    +- Glyph name: uni021B	Contours detected: 227	Expected: 2
    +
    +- Glyph name: uni0237	Contours detected: 170	Expected: 1
    +
    +- Glyph name: uni02BC	Contours detected: 20	Expected: 1
    +
    +- Glyph name: uni0302	Contours detected: 25	Expected: 1
    +
    +- Glyph name: uni0304	Contours detected: 34	Expected: 1
    +
    +- Glyph name: uni0306	Contours detected: 14	Expected: 1
    +
    +- Glyph name: uni0308	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni030A	Contours detected: 1	Expected: 2
    +
    +- Glyph name: uni030C	Contours detected: 17	Expected: 1
    +
    +- Glyph name: uni0312	Contours detected: 20	Expected: 1
    +
    +- Glyph name: uni0326	Contours detected: 20	Expected: 1
    +
    +- Glyph name: uni0327	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0328	Contours detected: 81	Expected: 1
    +
    +- Glyph name: uni0335	Contours detected: 16	Expected: 1
    +
    +- Glyph name: uni0337	Contours detected: 53	Expected: 1
    +
    +- Glyph name: uni0338	Contours detected: 94	Expected: 1
    +
    +- Glyph name: uni0400	Contours detected: 289	Expected: 2
    +
    +- Glyph name: uni0401	Contours detected: 260	Expected: 3
    +
    +- Glyph name: uni0402	Contours detected: 286	Expected: 1
    +
    +- Glyph name: uni0403	Contours detected: 236	Expected: 2
    +
    +- Glyph name: uni0404	Contours detected: 400	Expected: 1
    +
    +- Glyph name: uni0405	Contours detected: 217	Expected: 1
    +
    +- Glyph name: uni0406	Contours detected: 187	Expected: 1
    +
    +- Glyph name: uni0407	Contours detected: 192	Expected: 3
    +
    +- Glyph name: uni0408	Contours detected: 336	Expected: 1
    +
    +- Glyph name: uni0409	Contours detected: 612	Expected: 2
    +
    +- Glyph name: uni040A	Contours detected: 492	Expected: 2
    +
    +- Glyph name: uni040B	Contours detected: 368	Expected: 1
    +
    +- Glyph name: uni040C	Contours detected: 345	Expected: 2
    +
    +- Glyph name: uni040D	Contours detected: 536	Expected: 2
    +
    +- Glyph name: uni040E	Contours detected: 266	Expected: 2
    +
    +- Glyph name: uni040F	Contours detected: 411	Expected: 1
    +
    +- Glyph name: uni0410	Contours detected: 352	Expected: 2
    +
    +- Glyph name: uni0411	Contours detected: 471	Expected: 2
    +
    +- Glyph name: uni0412	Contours detected: 301	Expected: 3
    +
    +- Glyph name: uni0413	Contours detected: 233	Expected: 1
    +
    +- Glyph name: uni0414	Contours detected: 334	Expected: 2
    +
    +- Glyph name: uni0415	Contours detected: 255	Expected: 1
    +
    +- Glyph name: uni0416	Contours detected: 779	Expected: 1
    +
    +- Glyph name: uni0417	Contours detected: 343	Expected: 1
    +
    +- Glyph name: uni0418	Contours detected: 502	Expected: 1
    +
    +- Glyph name: uni0419	Contours detected: 517	Expected: 2
    +
    +- Glyph name: uni041A	Contours detected: 342	Expected: 1
    +
    +- Glyph name: uni041B	Contours detected: 429	Expected: 1
    +
    +- Glyph name: uni041C	Contours detected: 228	Expected: 1
    +
    +- Glyph name: uni041D	Contours detected: 525	Expected: 1
    +
    +- Glyph name: uni041E	Contours detected: 474	Expected: 2
    +
    +- Glyph name: uni041F	Contours detected: 443	Expected: 1
    +
    +- Glyph name: uni0420	Contours detected: 283	Expected: 1 or 2
    +
    +- Glyph name: uni0421	Contours detected: 374	Expected: 1
    +
    +- Glyph name: uni0422	Contours detected: 255	Expected: 1
    +
    +- Glyph name: uni0423	Contours detected: 251	Expected: 1
    +
    +- Glyph name: uni0424	Contours detected: 595	Expected: 3
    +
    +- Glyph name: uni0425	Contours detected: 356	Expected: 1
    +
    +- Glyph name: uni0426	Contours detected: 451	Expected: 1
    +
    +- Glyph name: uni0427	Contours detected: 339	Expected: 1
    +
    +- Glyph name: uni0428	Contours detected: 640	Expected: 1
    +
    +- Glyph name: uni0429	Contours detected: 459	Expected: 1
    +
    +- Glyph name: uni042A	Contours detected: 455	Expected: 2
    +
    +- Glyph name: uni042B	Contours detected: 520	Expected: 3
    +
    +- Glyph name: uni042C	Contours detected: 231	Expected: 2
    +
    +- Glyph name: uni042D	Contours detected: 335	Expected: 1
    +
    +- Glyph name: uni042E	Contours detected: 585	Expected: 2
    +
    +- Glyph name: uni042F	Contours detected: 435	Expected: 2
    +
    +- Glyph name: uni0430	Contours detected: 229	Expected: 2
    +
    +- Glyph name: uni0431	Contours detected: 262	Expected: 2
    +
    +- Glyph name: uni0432	Contours detected: 349	Expected: 3
    +
    +- Glyph name: uni0433	Contours detected: 91	Expected: 1
    +
    +- Glyph name: uni0434	Contours detected: 433	Expected: 2
    +
    +- Glyph name: uni0435	Contours detected: 198	Expected: 2
    +
    +- Glyph name: uni0436	Contours detected: 454	Expected: 1
    +
    +- Glyph name: uni0437	Contours detected: 176	Expected: 1
    +
    +- Glyph name: uni0438	Contours detected: 293	Expected: 1
    +
    +- Glyph name: uni0439	Contours detected: 324	Expected: 2
    +
    +- Glyph name: uni043A	Contours detected: 278	Expected: 1
    +
    +- Glyph name: uni043B	Contours detected: 276	Expected: 1
    +
    +- Glyph name: uni043C	Contours detected: 309	Expected: 1
    +
    +- Glyph name: uni043D	Contours detected: 222	Expected: 1
    +
    +- Glyph name: uni043E	Contours detected: 250	Expected: 2
    +
    +- Glyph name: uni043F	Contours detected: 188	Expected: 1
    +
    +- Glyph name: uni0440	Contours detected: 338	Expected: 2
    +
    +- Glyph name: uni0441	Contours detected: 239	Expected: 1
    +
    +- Glyph name: uni0442	Contours detected: 159	Expected: 1
    +
    +- Glyph name: uni0443	Contours detected: 352	Expected: 1
    +
    +- Glyph name: uni0444	Contours detected: 434	Expected: 3
    +
    +- Glyph name: uni0445	Contours detected: 207	Expected: 1
    +
    +- Glyph name: uni0446	Contours detected: 338	Expected: 1
    +
    +- Glyph name: uni0447	Contours detected: 298	Expected: 1
    +
    +- Glyph name: uni0448	Contours detected: 302	Expected: 1
    +
    +- Glyph name: uni0449	Contours detected: 384	Expected: 1
    +
    +- Glyph name: uni044A	Contours detected: 237	Expected: 2
    +
    +- Glyph name: uni044B	Contours detected: 273	Expected: 3
    +
    +- Glyph name: uni044C	Contours detected: 222	Expected: 2
    +
    +- Glyph name: uni044D	Contours detected: 141	Expected: 1
    +
    +- Glyph name: uni044E	Contours detected: 354	Expected: 2
    +
    +- Glyph name: uni044F	Contours detected: 230	Expected: 2
    +
    +- Glyph name: uni0450	Contours detected: 204	Expected: 3
    +
    +- Glyph name: uni0451	Contours detected: 203	Expected: 4
    +
    +- Glyph name: uni0452	Contours detected: 463	Expected: 1
    +
    +- Glyph name: uni0453	Contours detected: 102	Expected: 2
    +
    +- Glyph name: uni0454	Contours detected: 221	Expected: 1
    +
    +- Glyph name: uni0455	Contours detected: 162	Expected: 1
    +
    +- Glyph name: uni0456	Contours detected: 116	Expected: 2
    +
    +- Glyph name: uni0457	Contours detected: 101	Expected: 3
    +
    +- Glyph name: uni0458	Contours detected: 208	Expected: 2
    +
    +- Glyph name: uni0459	Contours detected: 272	Expected: 2
    +
    +- Glyph name: uni045A	Contours detected: 270	Expected: 2
    +
    +- Glyph name: uni045B	Contours detected: 438	Expected: 1
    +
    +- Glyph name: uni045C	Contours detected: 289	Expected: 2
    +
    +- Glyph name: uni045D	Contours detected: 299	Expected: 2
    +
    +- Glyph name: uni045E	Contours detected: 383	Expected: 2
    +
    +- Glyph name: uni045F	Contours detected: 349	Expected: 1 or 2
    +
    +- Glyph name: uni0462	Contours detected: 250	Expected: 2
    +
    +- Glyph name: uni0463	Contours detected: 288	Expected: 2
    +
    +- Glyph name: uni046A	Contours detected: 584	Expected: 2
    +
    +- Glyph name: uni046B	Contours detected: 301	Expected: 2
    +
    +- Glyph name: uni0472	Contours detected: 478	Expected: 3
    +
    +- Glyph name: uni0473	Contours detected: 250	Expected: 3
    +
    +- Glyph name: uni0474	Contours detected: 332	Expected: 1
    +
    +- Glyph name: uni0475	Contours detected: 246	Expected: 1
    +
    +- Glyph name: uni0490	Contours detected: 409	Expected: 1
    +
    +- Glyph name: uni0491	Contours detected: 157	Expected: 1
    +
    +- Glyph name: uni0492	Contours detected: 210	Expected: 1
    +
    +- Glyph name: uni0493	Contours detected: 107	Expected: 1
    +
    +- Glyph name: uni0494	Contours detected: 338	Expected: 1
    +
    +- Glyph name: uni0495	Contours detected: 256	Expected: 1
    +
    +- Glyph name: uni0496	Contours detected: 603	Expected: 1 or 2
    +
    +- Glyph name: uni0497	Contours detected: 467	Expected: 1 or 2
    +
    +- Glyph name: uni0498	Contours detected: 320	Expected: 1 or 2
    +
    +- Glyph name: uni0499	Contours detected: 166	Expected: 1 or 2
    +
    +- Glyph name: uni049A	Contours detected: 368	Expected: 1 or 2
    +
    +- Glyph name: uni049B	Contours detected: 403	Expected: 1 or 2
    +
    +- Glyph name: uni049C	Contours detected: 322	Expected: 1
    +
    +- Glyph name: uni049D	Contours detected: 209	Expected: 1
    +
    +- Glyph name: uni04A0	Contours detected: 270	Expected: 1
    +
    +- Glyph name: uni04A1	Contours detected: 243	Expected: 1
    +
    +- Glyph name: uni04A2	Contours detected: 454	Expected: 1 or 2
    +
    +- Glyph name: uni04A3	Contours detected: 323	Expected: 1 or 2
    +
    +- Glyph name: uni04A4	Contours detected: 418	Expected: 1
    +
    +- Glyph name: uni04A5	Contours detected: 293	Expected: 1
    +
    +- Glyph name: uni04AA	Contours detected: 418	Expected: 1 or 2
    +
    +- Glyph name: uni04AB	Contours detected: 244	Expected: 1 or 2
    +
    +- Glyph name: uni04B6	Contours detected: 445	Expected: 1 or 2
    +
    +- Glyph name: uni04B7	Contours detected: 347	Expected: 1 or 2
    +
    +- Glyph name: uni04B8	Contours detected: 320	Expected: 1
    +
    +- Glyph name: uni04B9	Contours detected: 211	Expected: 1
    +
    +- Glyph name: uni04BA	Contours detected: 305	Expected: 1
    +
    +- Glyph name: uni04BB	Contours detected: 353	Expected: 1
    +
    +- Glyph name: uni04C0	Contours detected: 187	Expected: 1
    +
    +- Glyph name: uni04C1	Contours detected: 794	Expected: 2
    +
    +- Glyph name: uni04C2	Contours detected: 485	Expected: 2
    +
    +- Glyph name: uni04CB	Contours detected: 365	Expected: 1 or 2
    +
    +- Glyph name: uni04CC	Contours detected: 317	Expected: 1 or 2
    +
    +- Glyph name: uni04CF	Contours detected: 248	Expected: 1
    +
    +- Glyph name: uni04D0	Contours detected: 367	Expected: 3
    +
    +- Glyph name: uni04D1	Contours detected: 260	Expected: 3
    +
    +- Glyph name: uni04D2	Contours detected: 357	Expected: 4
    +
    +- Glyph name: uni04D3	Contours detected: 234	Expected: 4
    +
    +- Glyph name: uni04D4	Contours detected: 496	Expected: 2
    +
    +- Glyph name: uni04D5	Contours detected: 307	Expected: 3
    +
    +- Glyph name: uni04D6	Contours detected: 270	Expected: 2
    +
    +- Glyph name: uni04D7	Contours detected: 229	Expected: 3
    +
    +- Glyph name: uni04D8	Contours detected: 318	Expected: 2
    +
    +- Glyph name: uni04D9	Contours detected: 290	Expected: 2
    +
    +- Glyph name: uni04DC	Contours detected: 784	Expected: 3
    +
    +- Glyph name: uni04DD	Contours detected: 459	Expected: 3
    +
    +- Glyph name: uni04DE	Contours detected: 348	Expected: 3
    +
    +- Glyph name: uni04DF	Contours detected: 181	Expected: 3
    +
    +- Glyph name: uni04E2	Contours detected: 536	Expected: 2
    +
    +- Glyph name: uni04E3	Contours detected: 327	Expected: 2
    +
    +- Glyph name: uni04E4	Contours detected: 507	Expected: 3
    +
    +- Glyph name: uni04E5	Contours detected: 298	Expected: 3
    +
    +- Glyph name: uni04E6	Contours detected: 479	Expected: 4
    +
    +- Glyph name: uni04E7	Contours detected: 255	Expected: 4
    +
    +- Glyph name: uni04E8	Contours detected: 461	Expected: 3
    +
    +- Glyph name: uni04E9	Contours detected: 250	Expected: 3
    +
    +- Glyph name: uni04EE	Contours detected: 285	Expected: 2
    +
    +- Glyph name: uni04EF	Contours detected: 386	Expected: 2
    +
    +- Glyph name: uni04F0	Contours detected: 256	Expected: 3
    +
    +- Glyph name: uni04F1	Contours detected: 357	Expected: 3
    +
    +- Glyph name: uni04F2	Contours detected: 253	Expected: 3
    +
    +- Glyph name: uni04F3	Contours detected: 354	Expected: 3
    +
    +- Glyph name: uni04F4	Contours detected: 344	Expected: 3
    +
    +- Glyph name: uni04F5	Contours detected: 303	Expected: 3
    +
    +- Glyph name: uni04F6	Contours detected: 344	Expected: 1 or 2
    +
    +- Glyph name: uni04F7	Contours detected: 214	Expected: 1 or 2
    +
    +- Glyph name: uni04F8	Contours detected: 525	Expected: 5
    +
    +- Glyph name: uni04F9	Contours detected: 278	Expected: 5
    +
    +- Glyph name: uni051A	Contours detected: 431	Expected: 2
    +
    +- Glyph name: uni051B	Contours detected: 397	Expected: 2
    +
    +- Glyph name: uni051C	Contours detected: 547	Expected: 1
    +
    +- Glyph name: uni051D	Contours detected: 233	Expected: 1
    +
    +- Glyph name: uni0524	Contours detected: 355	Expected: 1
    +
    +- Glyph name: uni0525	Contours detected: 311	Expected: 1
    +
    +- Glyph name: uni1E9E	Contours detected: 431	Expected: 1
    +
    +- Glyph name: uni20AA	Contours detected: 506	Expected: 2
    +
    +- Glyph name: uni20AE	Contours detected: 213	Expected: 1
    +
    +- Glyph name: uni20B4	Contours detected: 313	Expected: 1 or 2
    +
    +- Glyph name: uni20B8	Contours detected: 222	Expected: 2
    +
    +- Glyph name: uni20B9	Contours detected: 278	Expected: 1
    +
    +- Glyph name: uni20BD	Contours detected: 433	Expected: 2
    +
    +- Glyph name: uni2116	Contours detected: 545	Expected: 3 or 4
    +
    +- Glyph name: uni2206	Contours detected: 275	Expected: 2
    +
    +- Glyph name: uni2215	Contours detected: 215	Expected: 1
    +
    +- Glyph name: uogonek	Contours detected: 279	Expected: 1
    +
    +- Glyph name: uring	Contours detected: 363	Expected: 3
    +
    +- Glyph name: utilde	Contours detected: 384	Expected: 2
    +
    +- Glyph name: v	Contours detected: 163	Expected: 1
    +
    +- Glyph name: w	Contours detected: 233	Expected: 1
    +
    +- Glyph name: wacute	Contours detected: 244	Expected: 2
    +
    +- Glyph name: wcircumflex	Contours detected: 258	Expected: 2
    +
    +- Glyph name: wdieresis	Contours detected: 238	Expected: 3
    +
    +- Glyph name: wgrave	Contours detected: 239	Expected: 2
    +
    +- Glyph name: x	Contours detected: 207	Expected: 1
    +
    +- Glyph name: y	Contours detected: 290	Expected: 1
    +
    +- Glyph name: yacute	Contours detected: 301	Expected: 2
    +
    +- Glyph name: ycircumflex	Contours detected: 315	Expected: 2
    +
    +- Glyph name: ydieresis	Contours detected: 295	Expected: 3
    +
    +- Glyph name: yen	Contours detected: 231	Expected: 1 or 2
    +
    +- Glyph name: ygrave	Contours detected: 296	Expected: 2
    +
    +- Glyph name: z	Contours detected: 198	Expected: 1
    +
    +- Glyph name: zacute	Contours detected: 209	Expected: 2
    +
    +- Glyph name: zcaron	Contours detected: 215	Expected: 2
    +
    +- Glyph name: zdotaccent	Contours detected: 199	Expected: 2
    +
    +- Glyph name: zero	Contours detected: 432	Expected: 2 or 3
    +
    +

    [code: contour-count]

    +
+

Does the font contain a soft hyphen?

+
Check ID: com.google.fonts/check/soft_hyphen
+ +
⚠️ RubikMaps-Regular.ttf
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character. [code: softhyphen]

    +
+

Check math signs have the same width.

+
Check ID: com.google.fonts/check/math_signs_width
+ +
⚠️ RubikMaps-Regular.ttf
  • ⚠️ WARN

    The most common width is 538 among a set of 2 math glyphs. +The following math glyphs have a different width, though:

    +

    Width = 594: +plus

    +

    Width = 563: +equal

    +

    Width = 564: +logicalnot

    +

    Width = 576: +plusminus

    +

    Width = 639: +multiply

    +

    Width = 517: +divide

    +

    Width = 642: +minus

    +

    Width = 551: +approxequal, notequal

    +

    Width = 556: +greaterequal, lessequal +[code: width-outliers]

    +
+

Section: Shaping Checks

+⚠️⚠️⏩⏩⏩ +

Ensure dotted circle glyph is present and can attach marks.

+
Check ID: com.google.fonts/check/dotted_circle
+ +
⚠️ RubikMaps-Regular.ttf
  • ⚠️ WARN

    No dotted circle glyph present [code: missing-dotted-circle]

    +
+

Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.

+
Check ID: com.google.fonts/check/soft_dotted
+ +
⚠️ RubikMaps-Regular.ttf
  • ⚠️ WARN

    The dot of soft dotted characters used in orthographies must disappear in the following strings: į̀ į́ į̂ į̃ į̄ į̌ і́

    +

    The dot of soft dotted characters should disappear in other cases, for example: i̦̒ j̦̒ į̆ į̇ į̈ į̊ į̋ į̒ į̦̒ į̧̒ į̨̒ į̵̀ į̵́ į̵̂ į̵̃ į̵̄ į̵̆ į̵̇ į̵̈ į̵̊

    +

    Your font fully covers the following languages that require the soft-dotted feature: Ukrainian (Cyrl, 29,273,587 speakers), Dutch (Latn, 31,709,104 speakers), Lithuanian (Latn, 2,357,094 speakers), Belarusian (Cyrl, 10,064,517 speakers).

    +

    Your font does not cover the following languages that require the soft-dotted feature: Kom (Latn, 360,685 speakers), Nateni (Latn, 100,000 speakers), Igbo (Latn, 27,823,640 speakers), Ebira (Latn, 2,200,000 speakers), Lugbara (Latn, 2,200,000 speakers), Basaa (Latn, 332,940 speakers), Koonzime (Latn, 40,000 speakers), Navajo (Latn, 166,319 speakers), Aghem (Latn, 38,843 speakers), Dan (Latn, 1,099,244 speakers), Ma’di (Latn, 584,000 speakers), Avokaya (Latn, 100,000 speakers), Gulay (Latn, 250,478 speakers), Mango (Latn, 77,000 speakers), Ejagham (Latn, 120,000 speakers), Sar (Latn, 500,000 speakers). [code: soft-dotted]

    +
+
+ + \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikmaps-report.json b/docs/fontbakery-reports/rubikmaps-report.json new file mode 100644 index 0000000..79e2b9f --- /dev/null +++ b/docs/fontbakery-reports/rubikmaps-report.json @@ -0,0 +1 @@ +{"result": {"FAIL": 4, "INFO": 9, "PASS": 158, "SKIP": 64, "WARN": 12}, "sections": [{"checks": [{"description": "Fonts have equal codepoint coverage", "experimental": "Since 2023/Oct/13", "key": ["", "", []], "logs": [{"message": "All font files in this family have an equivalent encoded glyphset.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Ensure that all variable font files have the same set of axes and axis ranges.", "key": ["", "", []], "logs": [{"message": "Unfulfilled Conditions: VFs", "status": "SKIP", "traceback": null}], "rationale": "\n In order to facilitate the construction of intuitive and friendly user\n interfaces, all variable font files in a given family should have the same set\n of variation axes. Also, each axis must have a consistent setting of min/max\n value ranges accross all the files.\n ", "result": "SKIP"}, {"description": "All tabular figures must have the same width across the RIBBI-family.", "key": ["", "", []], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Tabular figures need to have the same metrics in all styles in order to allow\n tables to be set with proper typographic control, but to maintain the placement\n of decimals and numeric columns between rows.\n\n Here's a good explanation of this:\n https://www.typography.com/techniques/fonts-for-financials/#tabular-figs\n ", "result": "PASS"}, {"description": "Does font file include unacceptable control character glyphs?", "key": ["", "", []], "logs": [{"message": "Unacceptable control characters were not identified.", "status": "PASS", "traceback": null}], "rationale": "\n Use of some unacceptable control characters in the U+0000 - U+001F range can\n lead to rendering issues on some platforms.\n\n Acceptable control characters are defined as .null (U+0000) and\n CR (U+000D) for this test.\n ", "result": "PASS"}, {"description": "Ensure Italic styles have Roman counterparts.", "key": ["", "", []], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n For each font family on Google Fonts, every Italic style must have\n a Roman sibling.\n\n This kind of problem was first observed at [1] where the Bold style was\n missing but BoldItalic was included.\n\n [1] https://github.com/google/fonts/pull/1482\n ", "result": "PASS"}, {"description": "Check axis ordering on the STAT table.", "key": ["", "", []], "logs": [{"message": "This font does not have a STAT table: /home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf [code: missing-STAT]", "status": "SKIP", "traceback": null}, {"message": "From a total of 1 font files, 1 of them (100.00%) lack a STAT table.\n\n\tAnd these are the most common STAT axis orderings:\n\t [code: summary]", "status": "INFO", "traceback": null}], "rationale": "\n This is (for now) a merely informative check to detect what's the axis ordering\n declared on the STAT table of fonts in the Google Fonts collection.\n\n We may later update this to enforce some unified axis ordering scheme,\n yet to be determined.\n ", "result": "INFO"}, {"description": "Check README.md has a sample image.", "key": ["", "", []], "logs": [{"message": "Unfulfilled Conditions: readme_contents, readme_directory", "status": "SKIP", "traceback": null}], "rationale": "\n In order to showcase what a font family looks like, the project's README.md\n file should ideally include a sample image and highlight it in the upper\n portion of the document, no more than 10 lines away from the top of the file.\n ", "result": "SKIP"}, {"description": "Checking file is named canonically.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font filename is correct, \"RubikMaps-Regular.ttf\".", "status": "PASS", "traceback": null}], "rationale": "\n A font's filename must be composed as \"-.ttf\":\n\n - Nunito-Regular.ttf\n\n - Oswald-BoldItalic.ttf\n\n\n Variable fonts must list the axis tags in alphabetical order in\n square brackets and separated by commas:\n\n - Roboto[wdth,wght].ttf\n\n - Familyname-Italic[wght].ttf\n ", "result": "PASS"}, {"description": "Does DESCRIPTION file contain broken links?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All links in the DESCRIPTION file look good!", "status": "PASS", "traceback": null}], "rationale": "\n The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font\n family webpage on the Google Fonts website. For that reason, all hyperlinks\n in it must be properly working.\n ", "result": "PASS"}, {"description": "URLs on DESCRIPTION file must not display http(s) prefix.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All good!", "status": "PASS", "traceback": null}], "rationale": "\n The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font\n family webpage on the Google Fonts website.\n\n Google Fonts has a content formatting policy for that snippet that expects the\n text content of anchors not to include the http:// or https:// prefixes.\n ", "result": "PASS"}, {"description": "Does DESCRIPTION file contain a upstream Git repo URL?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Found a git repo URL: https://github.com/NaN-xyz/Glyph-Filters [code: url-found]", "status": "INFO", "traceback": null}, {"message": "Found a git repo URL: https://github.com/NaN-xyz/Rubik-Filtered [code: url-found]", "status": "INFO", "traceback": null}, {"message": "Looks great!", "status": "PASS", "traceback": null}], "rationale": "\n The contents of the DESCRIPTION.en-us.html file are displayed on the\n Google Fonts website in the about section of each font family specimen page.\n\n Since all of the Google Fonts collection is composed of libre-licensed fonts,\n this check enforces a policy that there must be a hypertext link in that page\n directing users to the repository where the font project files are\n made available.\n\n Such hosting is typically done on sites like Github, Gitlab, GNU Savannah or\n any other git-based version control service.\n ", "result": "INFO"}, {"description": "Is this a proper HTML snippet?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/DESCRIPTION.en_us.html is a propper HTML file.", "status": "PASS", "traceback": null}], "rationale": "\n Sometimes people write malformed HTML markup. This check should ensure the\n file is good.\n\n Additionally, when packaging families for being pushed to the `google/fonts`\n git repo, if there is no DESCRIPTION.en_us.html file, some older versions of\n the `add_font.py` tool insert a placeholder description file which contains\n invalid html. This file needs to either be replaced with an existing\n description file or edited by hand.\n ", "result": "PASS"}, {"description": "DESCRIPTION.en_us.html must have more than 200 bytes.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "DESCRIPTION.en_us.html is larger than 200 bytes.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "DESCRIPTION.en_us.html should end in a linebreak.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": ":-)", "status": "PASS", "traceback": null}], "rationale": "\n Some older text-handling tools sometimes misbehave if the last line of data\n in a text file is not terminated with a newline character (also known as '\\n').\n\n We know that this is a very small detail, but for the sake of keeping all\n DESCRIPTION.en_us.html files uniformly formatted throughout the GFonts\n collection, we chose to adopt the practice of placing this final linebreak\n character on them.\n ", "result": "PASS"}, {"description": "Check METADATA.pb parse correctly.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb parsed successfuly.", "status": "PASS", "traceback": null}], "rationale": "\n The purpose of this check is to ensure that the METADATA.pb file is not\n malformed.\n ", "result": "PASS"}, {"description": "Font designer field in METADATA.pb must not be 'unknown'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font designer field is not 'unknown'.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font designer field in METADATA.pb must not contain 'Multiple designers'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good.", "status": "PASS", "traceback": null}], "rationale": "\n For a while the string \"Multiple designers\" was used as a placeholder on\n METADATA.pb files. We should replace all those instances with actual designer\n names so that proper credits are displayed on the Google Fonts family\n specimen pages.\n\n If there's more than a single designer, the designer names must be\n separated by commas.\n ", "result": "PASS"}, {"description": "Multiple values in font designer field in METADATA.pb must be separated by commas.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good.", "status": "PASS", "traceback": null}], "rationale": "\n We must use commas instead of forward slashes because the server-side code\n at the fonts.google.com directory will segment the string on the commas into\n a list of names and display the first item in the list as the\n \"principal designer\" while the remaining names are identified as \"contributors\".\n\n See eg https://fonts.google.com/specimen/Rubik\n ", "result": "PASS"}, {"description": "Does METADATA.pb copyright field contain broken links?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All links in the METADATA.pb file look good!", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Ensure METADATA.pb lists all font binaries.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n The set of font binaries available, except the ones on a \"static\" subdir,\n must match exactly those declared on the METADATA.pb file.\n\n Also, to avoid confusion, we expect that font files (other than statics)\n are not placed on subdirectories.\n ", "result": "PASS"}, {"description": "Ensure METADATA.pb category field is valid.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK!", "status": "PASS", "traceback": null}], "rationale": "\n There are only five acceptable values for the category field in a METADATA.pb\n file:\n\n - MONOSPACE\n\n - SANS_SERIF\n\n - SERIF\n\n - DISPLAY\n\n - HANDWRITING\n\n This check is meant to avoid typos in this field.\n ", "result": "PASS"}, {"description": "Checking OS/2 fsType does not impose restrictions.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 fsType is properly set to zero.", "status": "PASS", "traceback": null}], "rationale": "\n The fsType in the OS/2 table is a legacy DRM-related field. Fonts in the\n Google Fonts collection must have it set to zero (also known as\n \"Installable Embedding\"). This setting indicates that the fonts can be\n embedded in documents and permanently installed by applications on\n remote systems.\n\n More detailed info is available at:\n https://docs.microsoft.com/en-us/typography/opentype/spec/os2#fstype\n ", "result": "PASS"}, {"description": "Checking OS/2 achVendID.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx\n [code: unknown]", "status": "WARN", "traceback": null}], "rationale": "\n Microsoft keeps a list of font vendors and their respective contact info. This\n list is updated regularly and is indexed by a 4-char \"Vendor ID\" which is\n stored in the achVendID field of the OS/2 table.\n\n Registering your ID is not mandatory, but it is a good practice since some\n applications may display the type designer / type foundry contact info on some\n dialog and also because that info will be visible on Microsoft's website:\n\n https://docs.microsoft.com/en-us/typography/vendors/\n\n This check verifies whether or not a given font's vendor ID is registered in\n that list or if it has some of the default values used by the most common\n font editors.\n\n Each new FontBakery release includes a cached copy of that list of vendor IDs.\n If you registered recently, you're safe to ignore warnings emitted by this\n check, since your ID will soon be included in one of our upcoming releases.\n ", "result": "WARN"}, {"description": "Check Google Fonts glyph coverage.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Google Fonts expects that fonts in its collection support at least the minimal\n set of characters defined in the `GF-latin-core` glyph-set.\n ", "result": "PASS"}, {"description": "Check for METADATA subsets with zero support.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n This check ensures that the subsets specified on a METADATA.pb file are\n actually supported (even if only partially) by the font files.\n\n Subsets for which none of the codepoints are supported will cause the\n check to FAIL.\n ", "result": "PASS", "severity": 10}, {"description": "Check for codepoints not covered by METADATA subsets.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The following codepoints supported by the font are not covered by\n any subsets defined in the font's metadata file, and will never\n be served. You can solve this by either manually adding additional\n subset declarations to METADATA.pb, or by editing the glyphset\n definitions.\n\n * U+02C7 CARON: try adding one of: yi, canadian-aboriginal, tifinagh\n * U+02D8 BREVE: try adding one of: yi, canadian-aboriginal\n * U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal\n * U+02DB OGONEK: try adding one of: yi, canadian-aboriginal\n * U+02DD DOUBLE ACUTE ACCENT: not included in any glyphset definition\n * U+0306 COMBINING BREVE: try adding one of: tifinagh, old-permic\n * U+030A COMBINING RING ABOVE: try adding syriac\n * U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee\n * U+030C COMBINING CARON: try adding one of: tai-le, cherokee\n * U+0312 COMBINING TURNED COMMA ABOVE: not included in any glyphset definition\n * U+0326 COMBINING COMMA BELOW: not included in any glyphset definition\n * U+0327 COMBINING CEDILLA: not included in any glyphset definition\n * U+0328 COMBINING OGONEK: not included in any glyphset definition\n * U+0335 COMBINING SHORT STROKE OVERLAY: not included in any glyphset definition\n * U+0337 COMBINING SHORT SOLIDUS OVERLAY: not included in any glyphset definition\n * U+0338 COMBINING LONG SOLIDUS OVERLAY: not included in any glyphset definition\n * U+2021 DOUBLE DAGGER: try adding adlam\n * U+2030 PER MILLE SIGN: try adding adlam\n * U+2070 SUPERSCRIPT ZERO: not included in any glyphset definition\n * U+2075 SUPERSCRIPT FIVE: not included in any glyphset definition\n * U+2076 SUPERSCRIPT SIX: not included in any glyphset definition\n * U+2077 SUPERSCRIPT SEVEN: not included in any glyphset definition\n * U+2078 SUPERSCRIPT EIGHT: not included in any glyphset definition\n * U+2079 SUPERSCRIPT NINE: not included in any glyphset definition\n * U+207D SUPERSCRIPT LEFT PARENTHESIS: not included in any glyphset definition\n * U+207E SUPERSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition\n * U+2080 SUBSCRIPT ZERO: not included in any glyphset definition\n * U+2081 SUBSCRIPT ONE: not included in any glyphset definition\n * U+2082 SUBSCRIPT TWO: not included in any glyphset definition\n * U+2083 SUBSCRIPT THREE: not included in any glyphset definition\n * U+2084 SUBSCRIPT FOUR: not included in any glyphset definition\n * U+2085 SUBSCRIPT FIVE: not included in any glyphset definition\n * U+2086 SUBSCRIPT SIX: not included in any glyphset definition\n * U+2087 SUBSCRIPT SEVEN: not included in any glyphset definition\n * U+2088 SUBSCRIPT EIGHT: not included in any glyphset definition\n * U+2089 SUBSCRIPT NINE: not included in any glyphset definition\n * U+208D SUBSCRIPT LEFT PARENTHESIS: not included in any glyphset definition\n * U+208E SUBSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition\n * U+212E ESTIMATED SYMBOL: not included in any glyphset definition\n * U+2153 VULGAR FRACTION ONE THIRD: not included in any glyphset definition\n * U+2154 VULGAR FRACTION TWO THIRDS: not included in any glyphset definition\n * U+215B VULGAR FRACTION ONE EIGHTH: not included in any glyphset definition\n * U+215C VULGAR FRACTION THREE EIGHTHS: not included in any glyphset definition\n * U+215D VULGAR FRACTION FIVE EIGHTHS: not included in any glyphset definition\n * U+215E VULGAR FRACTION SEVEN EIGHTHS: not included in any glyphset definition\n * U+FB01 LATIN SMALL LIGATURE FI: not included in any glyphset definition\n * U+FB02 LATIN SMALL LIGATURE FL: not included in any glyphset definition\n\nOr you can add the above codepoints to one of the subsets supported by the font: `cyrillic`, `cyrillic-ext`, `hebrew`, `latin`, `latin-ext`, `math`, `menu`, `symbols` [code: unreachable-subsetting]", "status": "WARN", "traceback": null}], "rationale": "\n This check ensures that all encoded glyphs in the font are covered by a\n subset declared in the METADATA.pb. Google Fonts splits the font into\n a set of subset fonts based on the contents of the `subsets` field and\n the subset definitions in the `glyphsets` repository.\n\n Any encoded glyphs which are not by any of these subset definitions\n will not be served in the subsetted fonts, and so will be unreachable to\n the end user.\n ", "result": "WARN", "severity": 2}, {"description": "Substitute copyright, registered and trademark symbols in name table entries.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No need to substitute copyright, registered and trademark symbols in name table entries of this font.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check the OS/2 usWeightClass is appropriate for the font's best SubFamily name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 usWeightClass is good", "status": "PASS", "traceback": null}], "rationale": "\n Google Fonts expects variable fonts, static ttfs and static otfs to have\n differing OS/2 usWeightClass values.\n\n - For Variable Fonts, Thin-Black must be 100-900\n\n - For static ttfs, Thin-Black can be 100-900 or 250-900\n\n - For static otfs, Thin-Black must be 250-900\n\n If static otfs are set lower than 250, text may appear blurry in\n legacy Windows applications.\n\n Glyphsapp users can change the usWeightClass value of an instance by adding\n a 'weightClass' customParameter.\n ", "result": "PASS"}, {"description": "Check font has a license.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Found license at '/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/OFL.txt'", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check license file has good copyright string.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "looks good", "status": "PASS", "traceback": null}], "rationale": "\n An OFL.txt file's first line should be the font copyright e.g:\n \"Copyright 2019 The Montserrat Project Authors\n (https://github.com/julietaula/montserrat)\"\n ", "result": "PASS", "severity": 10}, {"description": "Check OFL body text is correct.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OFL license body text is correct", "status": "PASS", "traceback": null}], "rationale": "\n Check OFL body text is correct.\n Often users will accidently delete parts of the body text.\n ", "result": "PASS", "severity": 10}, {"description": "Check copyright namerecords match license file.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Licensing entry on name table is correctly set.", "status": "PASS", "traceback": null}], "rationale": "\n A known licensing description must be provided in the NameID 14\n (LICENSE DESCRIPTION) entries of the name table.\n\n The source of truth for this check (to determine which license is in use) is\n a file placed side-by-side to your font project including the licensing terms.\n\n Depending on the chosen license, one of the following string snippets is\n expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the\n name table:\n\n - \"This Font Software is licensed under the SIL Open Font License, Version 1.1.\n This license is available with a FAQ at: https://scripts.sil.org/OFL\"\n\n - \"Licensed under the Apache License, Version 2.0\"\n\n - \"Licensed under the Ubuntu Font Licence 1.0.\"\n\n\n Currently accepted licenses are Apache or Open Font License. For a small set\n of legacy families the Ubuntu Font License may be acceptable as well.\n\n When in doubt, please choose OFL for new font projects.\n ", "result": "PASS"}, {"description": "License URL matches License text on name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has a valid license URL in NAME table.", "status": "PASS", "traceback": null}], "rationale": "\n A known license URL must be provided in the NameID 14 (LICENSE INFO URL)\n entry of the name table.\n\n The source of truth for this check is the licensing text found on the NameID 13\n entry (LICENSE DESCRIPTION).\n\n The string snippets used for detecting licensing terms are:\n\n - \"This Font Software is licensed under the SIL Open Font License, Version 1.1.\n This license is available with a FAQ at: https://scripts.sil.org/OFL\"\n\n - \"Licensed under the Apache License, Version 2.0\"\n\n - \"Licensed under the Ubuntu Font Licence 1.0.\"\n\n\n Currently accepted licenses are Apache or Open Font License. For a small set of\n legacy families the Ubuntu Font License may be acceptable as well.\n\n When in doubt, please choose OFL for new font projects.\n ", "result": "PASS"}, {"description": "Description strings in the name table must not exceed 200 characters.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All description name records have reasonably small lengths.", "status": "PASS", "traceback": null}], "rationale": "\n An old FontLab version had a bug which caused it to store copyright notices\n in nameID 10 entries.\n\n In order to detect those and distinguish them from actual legitimate usage of\n this name table entry, we expect that such strings do not exceed a reasonable\n length of 200 chars.\n\n Longer strings are likely instances of the FontLab bug.\n ", "result": "PASS"}, {"description": "Show hinting filesize impact.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Hinting filesize impact:\n\n | | /home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf |\n |:------------- | ---------------:|\n | Dehinted Size | 2.2Mb |\n | Hinted Size | 2.2Mb |\n | Increase | 24 bytes |\n | Change | 0.0 % |\n [code: size-impact]", "status": "INFO", "traceback": null}], "rationale": "\n This check is merely informative, displaying and useful comparison of filesizes\n of hinted versus unhinted font files.\n ", "result": "INFO"}, {"description": "Ensure files are not too large.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font file is 2.2Mb; ideally it should be less than 1.0Mb [code: large-font]", "status": "WARN", "traceback": null}], "rationale": "\n Serving extremely large font files on Google Fonts causes usability issues.\n This check ensures that file sizes are reasonable.\n ", "result": "WARN", "severity": 10}, {"description": "Version format is correct in 'name' table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Version format in NAME table entries is correct.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font has ttfautohint params?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font appears to our heuristic as not hinted using ttfautohint. [code: not-hinted]", "status": "SKIP", "traceback": null}], "result": "SKIP"}, {"description": "Font has old ttfautohint applied?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 2.201'] [code: version-not-detected]", "status": "INFO", "traceback": null}], "rationale": "\n Check if font has been hinted with an outdated version of ttfautohint.\n ", "result": "INFO"}, {"description": "EPAR table present in font?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "EPAR table not present in font. To learn more see https://github.com/fonttools/fontbakery/issues/818 [code: lacks-EPAR]", "status": "INFO", "traceback": null}], "rationale": "\n The EPAR table is/was a way of expressing common licensing permissions and\n restrictions in metadata; while almost nothing supported it, Dave Crossland\n wonders that adding it to everything in Google Fonts could help make it\n more popular.\n\n More info is available at:\n https://davelab6.github.io/epar/\n ", "result": "INFO", "severity": 1}, {"description": "Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "These are the ppm ranges declared on the gasp table:\n\nPPM <= 65535:\n\tflag = 0x0F\n\t- Use grid-fitting\n\t- Use grayscale rendering\n\t- Use gridfitting with ClearType symmetric smoothing\n\t- Use smoothing along multiple axes with ClearType\u00ae\n [code: ranges]", "status": "INFO", "traceback": null}, {"message": "The 'gasp' table is correctly set, with one gaspRange:value of 0xFFFF:0x0F.", "status": "PASS", "traceback": null}], "rationale": "\n Traditionally version 0 'gasp' tables were set so that font sizes below 8 ppem\n had no grid fitting but did have antialiasing. From 9-16 ppem, just grid\n fitting.\n And fonts above 17ppem had both antialiasing and grid fitting toggled on.\n The use of accelerated graphics cards and higher resolution screens make this\n approach obsolete. Microsoft's DirectWrite pushed this even further with much\n improved rendering built into the OS and apps.\n\n In this scenario it makes sense to simply toggle all 4 flags ON for all font\n sizes.\n ", "result": "INFO"}, {"description": "Make sure family name does not begin with a digit.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font family name first character is not a digit.", "status": "PASS", "traceback": null}], "rationale": "\n Font family names which start with a numeral are often not discoverable\n in Windows applications.\n ", "result": "PASS"}, {"description": "Are there non-ASCII characters in ASCII-only NAME table entries?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "None of the ASCII-only NAME table entries contain non-ASCII characteres.", "status": "PASS", "traceback": null}], "rationale": "\n The OpenType spec requires ASCII for the POSTSCRIPT_NAME (nameID 6).\n\n For COPYRIGHT_NOTICE (nameID 0) ASCII is required because that string should be\n the same in CFF fonts which also have this requirement in the OpenType spec.\n\n Note:\n A common place where we find non-ASCII strings is on name table entries\n with NameID > 18, which are expressly for localising the ASCII-only IDs\n into Hindi / Arabic / etc.\n ", "result": "PASS"}, {"description": "METADATA.pb: check if fonts field only has unique \"full_name\" values.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb \"fonts\" field only has unique \"full_name\" values.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: check if fonts field only contains unique style:weight pairs.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb \"fonts\" field only has unique style:weight pairs.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb license is \"APACHE2\", \"UFL\" or \"OFL\"?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font license is declared in METADATA.pb as \"OFL\"", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb should contain at least \"menu\" and \"latin\" subsets.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb contains \"menu\" and \"latin\" subsets.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb subsets should be alphabetically ordered.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb subsets are sorted in alphabetical order.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check METADATA.pb includes production subsets.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: listed_on_gfonts_api", "status": "SKIP", "traceback": null}], "rationale": "\n Check METADATA.pb file includes the same subsets as the family in production.\n ", "result": "SKIP"}, {"description": "METADATA.pb: Copyright notice is the same in all fonts?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Copyright is consistent across family", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check that METADATA.pb family values are all the same.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb: Family name is the same in all metadata \"fonts\" items.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: According to Google Fonts standards, families should have a Regular style.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Family has a Regular style.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Regular should be 400.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Regular has weight = 400.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checks METADATA.pb font.name field matches family name declared on the name table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Family name \"Rubik Maps\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Postscript name \"RubikMaps-Regular\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.full_name value matches fullname declared on the name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font fullname \"Rubik Maps Regular\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.name value should be same as the family name declared on the name table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK: Family name \"Rubik Maps\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "rationale": "\n This check ensures consistency between the font name declared on the name table\n and the contents of the METADATA.pb file.\n ", "result": "PASS"}, {"description": "METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font fields \"full_name\" and \"post_script_name\" have equivalent values.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.filename and font.post_script_name fields have equivalent values?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font fields \"filename\" and \"post_script_name\" have equivalent values.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.name field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font.name field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.full_name field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font.full_name field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.filename field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb filename field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.post_script_name field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb postScriptName field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check name ID 25 to end with \"Italic\" for Italic VFs.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Not an Italic VF.", "status": "PASS", "traceback": null}], "rationale": "\n Due to a bug in (at least) Adobe Indesign, name ID 25\n needs to be different for Italic VFs than their Upright counterparts.\n Google Fonts chooses to append \"Italic\" here.\n ", "result": "PASS"}, {"description": "Copyright notices match canonical pattern in METADATA.pb", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb copyright string is good", "status": "PASS", "traceback": null}], "rationale": "\n The expected pattern for the copyright string adheres to the following rules:\n\n * It must say \"Copyright\" followed by a 4 digit year (optionally followed by\n a hyphen and another 4 digit year)\n\n * Then it must say \"The Project Authors\"\n\n * And within parentheses, a URL for a git repository must be provided\n\n * The check is case insensitive and does not validate whether the familyname\n is correct, even though we'd expect it is (and we may soon update the check\n to validate that aspect as well!)\n\n\n Here is an example of a valid copyright string:\n\n \"Copyright 2017 The Archivo Black Project Authors\n (https://github.com/Omnibus-Type/ArchivoBlack)\"\n ", "result": "PASS"}, {"description": "Copyright notices match canonical pattern in fonts", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Name Table entry: Copyright field 'Copyright 2020 The Rubik Filtered Project Authors (https://github.com/NaN-xyz/Rubik-Filtered)' matches canonical pattern.", "status": "PASS", "traceback": null}, {"message": "Name table copyright entries are good", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Copyright notice on METADATA.pb should not contain 'Reserved Font Name'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb copyright field does not contain \"Reserved Font Name\".", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Copyright notice shouldn't exceed 500 chars.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Copyright notice string is shorter than 500 chars.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Font filenames match font.filename entries?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Filenames in METADATA.pb look good.", "status": "PASS", "traceback": null}], "rationale": "\n Note:\n This check only looks for files in the current directory.\n\n Font files in subdirectories are checked by these other two checks:\n - com.google.fonts/check/metadata/undeclared_fonts\n - com.google.fonts/check/repo/vf_has_static_fonts\n\n We may want to merge them all into a single check.\n ", "result": "PASS"}, {"description": "METADATA.pb font.style \"italic\" matches font internals?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This check only applies to italic fonts.", "status": "SKIP", "traceback": null}], "result": "SKIP"}, {"description": "METADATA.pb font.style \"normal\" matches font internals?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font.style \"normal\" matches font internals.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.name and font.full_name fields match the values declared on the name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb familyname and fullName fields match corresponding name table entries.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Check font name is the same as family name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font name is the same as family name.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Check that font weight has a canonical value.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font weight has a canonical value.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check METADATA.pb font weights are correct.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 usWeightClass or wght axis value matches weight specified at METADATA.pb", "status": "PASS", "traceback": null}], "rationale": "\n Check METADATA.pb font weights are correct.\n\n For static fonts, the metadata weight should be the same as the static font's\n OS/2 usWeightClass.\n\n For variable fonts, the weight value should be 400 if the font's wght axis range\n includes 400, otherwise it should be the value closest to 400.\n ", "result": "PASS"}, {"description": "METADATA.pb weight matches postScriptName for static fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Weight value matches postScriptName.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Font styles are named canonically?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font styles are named canonically.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Check URL on copyright string is the same as in repository_url field.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Repository URL is https://github.com/NaN-xyz/Rubik-Filtered\n\nBut: OFL text has 'https:/' and HTML description has 'github.com/NaN-xyz/Glyph-Filters'\n [code: mismatch]", "status": "FAIL", "traceback": null}], "rationale": "\n Sometimes, perhaps due to copy-pasting, projects may declare different URLs\n between the font.coyright and the family.sources.repository_url fields.\n ", "result": "FAIL"}, {"description": "METADATA.pb: Check for primary_script", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Try to guess font's primary script and see if that's set in METADATA.pb.\n This is an educated guess based on the number of glyphs per script in the font\n and should be taken with caution.\n ", "result": "PASS"}, {"description": "Shapes languages in all GF glyphsets.", "experimental": "Since 2023/Nov/02", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "GF_Latin_Core glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| haw_Latn (Hawaiian) | Some base glyphs were missing: \u02bb |\n| ^ | Shaper produced a .notdef |\n| mh_Latn (Marshallese) | Some base glyphs were missing: \u1e36, \u1e37, \u1e42, \u1e43, \u1e46, \u1e47, \u1ecc, \u1ecd |\n| ^ | Some mark glyphs were missing: \u25cc\u0323 |\n| ^ | Shaper produced a .notdef |\n| scn_Latn (Sicilian) | Some base glyphs were missing: \u1e0c, \u1e0d |\n| ^ | Shaper produced a .notdef |\n| teo_Latn (Teso) | Some base glyphs were missing: \u0186, \u0190, \u0197, \u0244, \u0254, \u025b, \u0268, \u0289, \u1d43, \u1d49, \u1d4b, \u1d52, \u1d53, \u1d58, \u1da4, \u1db6, \u2071 |\n| ^ | Shaper produced a .notdef |\n\n [code: failed-language-shaping]", "status": "FAIL", "traceback": null}, {"message": "GF_Latin_Core glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| lg_Latn (Ganda) | No variant glyphs were found for Eng |\n| dyo_Latn (Jola-Fonyi) | No variant glyphs were found for Eng |\n| ny_Latn (Nyanja) | No variant glyphs were found for Eng |\n| wo_Latn (Wolof) | No variant glyphs were found for Eng |\n\n [code: warning-language-shaping]", "status": "WARN", "traceback": null}, {"message": "GF_Cyrillic_Plus glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| tg_Cyrl (Tajik) | Some base glyphs were missing: \u04b3 |\n| ^ | Shaper produced a .notdef |\n| uz_Cyrl (Uzbek (Cyrillic)) | Some base glyphs were missing: \u04b3 |\n| ^ | Shaper produced a .notdef |\n\n [code: failed-language-shaping]", "status": "FAIL", "traceback": null}, {"message": "GF_Cyrillic_Plus glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| ku_Cyrl (Kurdish) | No exemplar glyphs were defined for language Kurdish |\n\n [code: warning-language-shaping]", "status": "WARN", "traceback": null}], "rationale": "\n This check uses a heuristic to determine which GF glyphsets a font supports.\n Then it checks the font for correct shaping behaviour for all languages in\n those glyphsets.\n ", "result": "FAIL"}, {"description": "Stricter unitsPerEm criteria for Google Fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font em size is good (unitsPerEm = 1000).", "status": "PASS", "traceback": null}], "rationale": "\n Even though the OpenType spec allows unitsPerEm to be any value between 16\n and 16384, the Google Fonts project aims at a narrower set of reasonable values.\n\n Values above 4000 would likely result in unreasonable\n filesize increases.\n ", "result": "PASS"}, {"description": "Glyphs are similiar to Google Fonts version?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: api_gfonts_ttFont", "status": "SKIP", "traceback": null}], "result": "SKIP"}, {"description": "Checking direction of slnt axis angles", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n The 'slnt' axis values are defined as negative values for a clockwise (right)\n lean, and positive values for counter-clockwise lean. This is counter-intuitive\n for many designers who are used to think of a positive slant as a lean to\n the right.\n\n This check ensures that the slant axis direction is consistent with the specs.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_slnt\n ", "result": "SKIP"}, {"description": "Check font names are correct", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font names are good:\n\n| nameID | current | expected |\n| :--- | :--- | :--- |\n| Family Name | Rubik Maps | Rubik Maps |\n| Subfamily Name | Regular | Regular |\n| Full Name | Rubik Maps Regular | Rubik Maps Regular |\n| Postscript Name | RubikMaps-Regular | RubikMaps-Regular |", "status": "PASS", "traceback": null}], "rationale": "\n Google Fonts has several rules which need to be adhered to when\n setting a font's name table. Please read:\n https://googlefonts.github.io/gf-guide/statics.html#supported-styles\n https://googlefonts.github.io/gf-guide/statics.html#style-linking\n https://googlefonts.github.io/gf-guide/statics.html#unsupported-styles\n https://googlefonts.github.io/gf-guide/statics.html#single-weight-families\n ", "result": "PASS"}, {"description": "Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Copyright field for this font on METADATA.pb matches copyright notice entries on the name table.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font has all mandatory 'name' table entries?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font contains values for all mandatory name table entries.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Length of copyright notice must not exceed 500 characters.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All copyright notice name entries on the 'name' table are shorter than 500 characters.", "status": "PASS", "traceback": null}], "rationale": "\n This is an arbitrary max length for the copyright notice field of the name\n table. We simply don't want such notices to be too long. Typically such notices\n are actually much shorter than this with a length of roughly 70 or 80\n characters.\n ", "result": "PASS"}, {"description": "Check for font-v versioning.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Version string is: \"Version 2.201\"\nThe version string must ideally include a git commit hash and either a \"dev\" or a \"release\" suffix such as in the example below:\n\"Version 1.3; git-0d08353-release\" [code: bad-format]", "status": "INFO", "traceback": null}], "rationale": "\n The git sha1 tagging and dev/release features of Source Foundry `font-v` tool\n are awesome and we would love to consider upstreaming the approach into\n fontmake someday. For now we only emit an INFO if a given font does not yet\n follow the experimental versioning style, but at some point we may start\n enforcing it.\n ", "result": "INFO"}, {"description": "Check glyphs do not have components which are themselves components.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyphs do not contain nested components.", "status": "PASS", "traceback": null}], "rationale": "\n There have been bugs rendering variable fonts with nested components.\n Additionally, some static fonts with nested components have been reported\n to have rendering and printing issues.\n\n For more info, see:\n * https://github.com/fonttools/fontbakery/issues/2961\n * https://github.com/arrowtype/recursive/issues/412\n ", "result": "PASS"}, {"description": "Check a static ttf can be generated from a variable font.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Google Fonts may serve static fonts which have been generated from variable\n fonts. This test will attempt to generate a static ttf using fontTool's\n varLib mutator.\n\n The target font will be the mean of each axis e.g:\n\n ## VF font axes\n\n - min weight, max weight = 400, 800\n\n - min width, max width = 50, 100\n\n ## Target Instance\n\n - weight = 600\n\n - width = 75\n ", "result": "SKIP"}, {"description": "Check that variable fonts have an HVAR table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Not having a HVAR table can lead to costly text-layout operations on some\n platforms, which we want to avoid.\n\n So, all variable fonts on the Google Fonts collection should have an HVAR\n with valid values.\n\n More info on the HVAR table can be found at:\n https://docs.microsoft.com/en-us/typography/opentype/spec/otvaroverview#variation-data-tables-and-miscellaneous-requirements\n ", "result": "SKIP"}, {"description": "Font enables smart dropout control in \"prep\" table instructions?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "'prep' table contains instructions enabling smart dropout control.", "status": "PASS", "traceback": null}], "rationale": "\n This setup is meant to ensure consistent rendering quality for fonts across\n all devices (with different rendering/hinting capabilities).\n\n Below is the snippet of instructions we expect to see in the fonts:\n B8 01 FF PUSHW 0x01FF\n 85 SCANCTRL (unconditinally turn on\n dropout control mode)\n B0 04 PUSHB 0x04\n 8D SCANTYPE (enable smart dropout control)\n\n \"Smart dropout control\" means activating rules 1, 2 and 5:\n Rule 1: If a pixel's center falls within the glyph outline,\n that pixel is turned on.\n Rule 2: If a contour falls exactly on a pixel's center,\n that pixel is turned on.\n Rule 5: If a scan line between two adjacent pixel centers\n (either vertical or horizontal) is intersected\n by both an on-Transition contour and an off-Transition\n contour and neither of the pixels was already turned on\n by rules 1 and 2, turn on the pixel which is closer to\n the midpoint between the on-Transition contour and\n off-Transition contour. This is \"Smart\" dropout control.\n\n For more detailed info (such as other rules not enabled in this snippet),\n please refer to the TrueType Instruction Set documentation.\n ", "result": "PASS"}, {"description": "There must not be VTT Talk sources in the font.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There are no tables with VTT Talk sources embedded in the font.", "status": "PASS", "traceback": null}], "rationale": "\n The goal here is to reduce filesizes and improve pageloading when dealing\n with webfonts.\n\n The VTT Talk sources are not necessary at runtime and endup being just dead\n weight when left embedded in the font binaries. The sources should be kept on\n the project files but stripped out when building release binaries.\n ", "result": "PASS"}, {"description": "Are there unwanted Apple tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There are no unwanted AAT tables.", "status": "PASS", "traceback": null}], "rationale": "\n Apple's TrueType reference manual [1] describes SFNT tables not in the\n Microsoft OpenType specification [2] and these can sometimes sneak into final\n release files, but Google Fonts should only have OpenType tables.\n\n [1] https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6.html\n [2] https://docs.microsoft.com/en-us/typography/opentype/spec/\n ", "result": "PASS"}, {"description": "Check a font's STAT table contains compulsory Axis Values.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check a font's STAT table contains compulsory Axis Values which exist\n in the Google Fonts Axis Registry.\n\n We cannot determine what Axis Values the user will set for axes such as\n opsz, GRAD since these axes are unique for each font so we'll skip them.\n ", "result": "SKIP"}, {"description": "Check variable font instances", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check a font's fvar instance coordinates comply with our guidelines:\n https://googlefonts.github.io/gf-guide/variable.html#fvar-instances\n ", "result": "SKIP"}, {"description": "All name entries referenced by fvar instances exist on the name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n The purpose of this check is to make sure that all name entries referenced\n by variable font instances do exist in the name table.\n ", "result": "SKIP"}, {"description": "PPEM must be an integer on hinted fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_hinted", "status": "SKIP", "traceback": null}], "rationale": "\n Hinted fonts must have head table flag bit 3 set.\n\n Per https://docs.microsoft.com/en-us/typography/opentype/spec/head,\n bit 3 of Head::flags decides whether PPEM should be rounded. This bit should\n always be set for hinted fonts.\n\n Note:\n Bit 3 = Force ppem to integer values for all internal scaler math;\n May use fractional ppem sizes if this bit is clear;\n ", "result": "SKIP"}, {"description": "Are there caret positions declared for every ligature?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n All ligatures in a font must have corresponding caret (text cursor) positions\n defined in the GDEF table, otherwhise, users may experience issues with\n caret rendering.\n\n If using GlyphsApp or UFOs, ligature carets can be defined as anchors with\n names starting with 'caret_'. These can be compiled with fontmake as of\n version v2.4.0.\n ", "result": "PASS"}, {"description": "Is there kerning info for non-ligated sequences?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "GPOS table lacks kerning info for the following non-ligated sequences:\n\n\t- f + f\n\n\t- f + i\n\n\t- i + f\n\n\t- f + l\n\n\t- l + f\n\n\t- i + l [code: lacks-kern-info]", "status": "WARN", "traceback": null}], "rationale": "\n Fonts with ligatures should have kerning on the corresponding non-ligated\n sequences for text where ligatures aren't used\n (eg https://github.com/impallari/Raleway/issues/14).\n ", "result": "WARN"}, {"description": "Combined length of family and style must not exceed 27 characters.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All name entries are good.", "status": "PASS", "traceback": null}], "rationale": "\n According to a GlyphsApp tutorial [1], in order to make sure all versions of\n Windows recognize it as a valid font file, we must make sure that the\n concatenated length of the familyname (NameID.FONT_FAMILY_NAME) and\n style (NameID.FONT_SUBFAMILY_NAME) strings in the name table do not\n exceed 20 characters.\n\n After discussing the problem in more detail at FontBakery issue #2179 [2] we\n decided that allowing up to 27 chars would still be on the safe side, though.\n\n [1] https://glyphsapp.com/tutorials/multiple-masters-part-3-setting-up-instances\n [2] https://github.com/fonttools/fontbakery/issues/2179\n ", "result": "PASS"}, {"description": "Name table entries should not contain line-breaks.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Name table entries are all single-line (no line-breaks found).", "status": "PASS", "traceback": null}], "rationale": "\n There are some entries on the name table that may include more than one line\n of text. The Google Fonts team, though, prefers to keep the name table entries\n short and simple without line breaks.\n\n For instance, some designers like to include the full text of a font license in\n the \"copyright notice\" entry, but for the GFonts collection this entry should\n only mention year, author and other basic info in a manner enforced by\n com.google.fonts/check/font_copyright\n ", "result": "PASS"}, {"description": "Name table strings must not contain the string 'Reserved Font Name'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "None of the name table strings contain \"Reserved Font Name\".", "status": "PASS", "traceback": null}], "rationale": "\n Some designers adopt the \"Reserved Font Name\" clause of the OFL license. This\n means that the original author reserves the rights to the family name and other\n people can only distribute modified versions using a different family name.\n\n Google Fonts published updates to the fonts in the collection in order to fix\n issues and/or implement further improvements to the fonts. It is important to\n keep the family name so that users of the webfonts can benefit from the updates.\n Since it would forbid such usage scenario, all families in the GFonts collection\n are required to not adopt the RFN clause.\n\n This check ensures \"Reserved Font Name\" is not mentioned in the name table.\n ", "result": "PASS"}, {"description": "Check family name for GF Guide compliance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font name looks good.", "status": "PASS", "traceback": null}], "rationale": "\n Checks the family name for compliance with the Google Fonts Guide.\n https://googlefonts.github.io/gf-guide/onboarding.html#new-fonts\n\n If you want to have your family name added to the CamelCase\n exceptions list, please submit a pull request to the\n camelcased_familyname_exceptions.txt file.\n\n Similarly, abbreviations can be submitted to the\n abbreviations_familyname_exceptions.txt file.\n\n These are located in the Lib/fontbakery/data/googlefonts/ directory\n of the FontBakery source code currently hosted at\n https://github.com/fonttools/fontbakery/\n ", "result": "PASS"}, {"description": "Directory name in GFonts repo structure must match NameID 1 of the regular.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "A static fonts directory, if present, must contain manually hinted fonts", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Variable font family directories kept in the google/fonts git repo may include\n a static/ subdir containing static fonts, if manual hinting is used on\n these fonts. Otherwise, the directory should be removed.\n ", "result": "PASS"}, {"description": "A font repository should not include FontBakery report files", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n A FontBakery report is ephemeral and so should be used for posting issues on a\n bug-tracker instead of being hosted in the font project repository.\n ", "result": "PASS"}, {"description": "Check upstream.yaml file contains all required fields", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The upstream.yaml file contains all necessary fields", "status": "PASS", "traceback": null}], "rationale": "\n If a family has been pushed using the gftools packager, we must check that all\n the required fields in the upstream.yaml file have been populated.\n ", "result": "PASS", "severity": 10}, {"description": "A font repository should not include ZIP files", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Sometimes people check in ZIPs into their font project repositories. While we\n accept the practice of checking in binaries, we believe that a ZIP is a step\n too far ;)\n\n Note: a source purist position is that only source files and build scripts\n should be checked in.\n ", "result": "PASS"}, {"description": "Check font follows the Google Fonts vertical metric schema", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The sum of hhea.ascender + abs(hhea.descender) + hhea.lineGap is 1185 when it should be at least 1200 [code: bad-hhea-range]", "status": "FAIL", "traceback": null}], "rationale": "\n This check generally enforces Google Fonts\u2019 vertical metrics specifications.\n In particular:\n * lineGap must be 0\n * Sum of hhea ascender + abs(descender) + linegap must be\n between 120% and 200% of UPM\n * Warning if sum is over 150% of UPM\n\n The threshold levels 150% (WARN) and 200% (FAIL) are somewhat arbitrarily chosen\n and may hint at a glaring mistake in the metrics calculations or UPM settings.\n\n Our documentation includes further information:\n https://github.com/googlefonts/gf-docs/tree/main/VerticalMetrics\n ", "result": "FAIL"}, {"description": "Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: regular_remote_style", "status": "SKIP", "traceback": null}], "rationale": "\n If the family already exists on Google Fonts, we need to ensure that the\n checked family's vertical metrics are similar. This check will test the\n following schema which was outlined in Font Bakery issue #1162 [1]:\n\n - The family should visually have the same vertical metrics as the Regular\n style hosted on Google Fonts.\n\n - If the family on Google Fonts has differing hhea and typo metrics, the family\n being checked should use the typo metrics for both the hhea and typo entries.\n\n - If the family on Google Fonts has use typo metrics not enabled and the family\n being checked has it enabled, the hhea and typo metrics should use the family\n on Google Fonts winAscent and winDescent values.\n\n - If the upms differ, the values must be scaled so the visual appearance is\n the same.\n\n [1] https://github.com/fonttools/fontbakery/issues/1162\n ", "result": "SKIP"}, {"description": "Check font follows the Google Fonts CJK vertical metric schema", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cjk_font", "status": "SKIP", "traceback": null}], "rationale": "\n CJK fonts have different vertical metrics when compared to Latin fonts.\n We follow the schema developed by dr Ken Lunde for Source Han Sans and\n the Noto CJK fonts.\n\n Our documentation includes further information:\n https://github.com/googlefonts/gf-docs/tree/main/Spec#cjk-vertical-metrics\n ", "result": "SKIP"}, {"description": "Check if the vertical metrics of a CJK family are similar to the same family hosted on Google Fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cjk_font, regular_remote_style", "status": "SKIP", "traceback": null}], "rationale": "\n Check CJK family has the same vertical metrics as the same family\n hosted on Google Fonts.\n ", "result": "SKIP"}, {"description": "Does the font contain less than 150 CJK characters?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_claiming_to_be_cjk_font", "status": "SKIP", "traceback": null}], "rationale": "\n Kana has 150 characters and it's the smallest CJK writing system.\n\n If a font contains less CJK glyphs than this writing system, we inform the\n user that some glyphs may be encoded incorrectly.\n ", "result": "SKIP"}, {"description": "Check variable font instances don't have duplicate names", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n This check's purpose is to detect duplicate named instances names in a\n given variable font.\n Repeating instance names may be the result of instances for several VF axes\n defined in `fvar`, but since currently only weight+italic tokens are allowed\n in instance names as per GF specs, they ended up repeating.\n Instead, only a base set of fonts for the most default representation of the\n family can be defined through instances in the `fvar` table, all other\n instances will have to be left to access through the `STAT` table.\n ", "result": "SKIP"}, {"description": "Ensure VFs do not contain the ital axis.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n The 'ital' axis is not supported yet in Google Chrome.\n\n For the time being, we need to ensure that VFs do not contain this axis.\n Once browser support is better, we can deprecate this check.\n\n For more info regarding browser support, see:\n https://arrowtype.github.io/vf-slnt-test/\n ", "result": "SKIP"}, {"description": "Ensure VFs with duplexed axes do not vary horizontal advance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Certain axes, such as grade (GRAD) or roundness (ROND), should not\n change any advanceWidth or kerning data across the font's design space.\n This is because altering the advance width of glyphs can cause text reflow.\n ", "result": "SKIP"}, {"description": "Validate METADATA.pb axes values are within gf_axisregistry bounds.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Each axis range in a METADATA.pb file must be registered, and within the bounds\n of the axis definition in the Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n ", "result": "SKIP"}, {"description": "Validate METADATA.pb axes tags are defined in gf_axisregistry.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Ensure all axes in a METADATA.pb file are registered in the\n Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n\n Why does Google Fonts have its own Axis Registry?\n\n We support a superset of the OpenType axis registry axis set, and use\n additional metadata for each axis. Axes present in a font file but not in this\n registry will not function via our API. No variable font is expected to\n support all of the axes here.\n\n Any font foundry or distributor library that offers variable fonts has a\n implicit, latent, de-facto axis registry, which can be extracted by scanning\n the library for axes' tags, labels, and min/def/max values. While in 2016\n Microsoft originally offered to include more axes in the OpenType 1.8\n specification (github.com/microsoft/OpenTypeDesignVariationAxisTags), as of\n August 2020, this effort has stalled. We hope more foundries and distributors\n will publish documents like this that make their axes explicit, to encourage\n of adoption of variable fonts throughout the industry, and provide source\n material for a future update to the OpenType specification's axis registry.\n ", "result": "SKIP"}, {"description": "Validate defaults on fvar table match registered fallback names in GFAxisRegistry.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check that axis defaults have a corresponding fallback name registered at the\n Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n\n This is necessary for the following reasons:\n\n To get ZIP files downloads on Google Fonts to be accurate \u2014 otherwise the\n chosen default font is not generated. The Newsreader family, for instance, has\n a default value on the 'opsz' axis of 16pt. If 16pt was not a registered\n fallback position, then the ZIP file would instead include another position\n as default (such as 14pt).\n\n For the Variable fonts to display the correct location on the specimen page.\n\n For VF with no weight axis to be displayed at all. For instance, Ballet, which\n has no weight axis, was not appearing in sandbox because default position on\n 'opsz' axis was 16pt, and it was not yet a registered fallback positon.\n ", "result": "SKIP"}, {"description": "Validate STAT particle names and values match the fallback names in GFAxisRegistry.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check that particle names and values on STAT table match the fallback names\n in each axis entry at the Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n ", "result": "SKIP"}, {"description": "Validate VF axes match the ones declared on METADATA.pb.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n All font variation axes present in the font files must be properly declared\n on METADATA.pb so that they can be served by the GFonts API.\n ", "result": "SKIP"}, {"description": "Ensure METADATA.pb does not use escaped strings.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n In some cases we've seen designer names and other fields with escaped strings\n in METADATA files (such as \"Juli\\303\\241n\").\n\n Nowadays the strings can be full unicode strings (such as \"Juli\u00e1n\") and do\n not need escaping.\n\n Escaping quotes or double-quotes is fine, though.\n ", "result": "PASS"}, {"description": "METADATA.pb: Designers are listed correctly on the Google Fonts catalog?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Designer Luke Prowse still does not have an avatar image. Please provide one. [code: missing-avatar]", "status": "FAIL", "traceback": null}], "rationale": "\n Google Fonts has a catalog of designers.\n\n This check ensures that the online entries of the catalog can be found based\n on the designer names listed on the METADATA.pb file.\n\n It also validates the URLs and file formats are all correctly set.\n ", "result": "FAIL"}, {"description": "Ensure variable fonts include an avar table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Most variable fonts should include an avar table to correctly define\n axes progression rates.\n\n For example, a weight axis from 0% to 100% doesn't map directly to 100 to 1000,\n because a 10% progression from 0% may be too much to define the 200,\n while 90% may be too little to define the 900.\n\n If the progression rates of axes is linear, this check can be ignored.\n Fontmake will also skip adding an avar table if the progression rates\n are linear. However, we still recommend designers visually proof each\n instance is at the expected weight, width etc.\n ", "result": "SKIP"}, {"description": "On a family update, the DESCRIPTION.en_us.html file should ideally also be updated.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The DESCRIPTION.en_us.html file in this family has not changed in comparison to the latest font release on the google/fonts github repo.\nPlease consider mentioning note-worthy improvements made to the family recently. [code: description-not-updated]", "status": "WARN", "traceback": null}], "rationale": "\n We want to ensure that any significant changes to the font family are\n properly mentioned in the DESCRIPTION file.\n\n In general, it means that the contents of the DESCRIPTION.en_us.html file\n will typically change if when font files are updated. Please treat this check\n as a reminder to do so whenever appropriate!\n ", "result": "WARN"}, {"description": "Check small caps glyphs are available.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Ensure small caps glyphs are available if\n a font declares smcp or c2sc OT features.\n ", "result": "PASS"}, {"description": "Ensure Stylistic Sets have description.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Stylistic sets should provide description text. Programs such as InDesign,\n TextEdit and Inkscape use that info to display to the users so that they know\n what a given stylistic set offers.\n ", "result": "PASS"}, {"description": "OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n All fonts on the Google Fonts collection should have OS/2.fsSelection bit 7\n (USE_TYPO_METRICS) set. This requirement is part of the vertical metrics scheme\n established as a Google Fonts policy aiming at a common ground supported by\n all major font rendering environments.\n\n For more details, read:\n https://github.com/googlefonts/gf-docs/blob/main/VerticalMetrics/README.md\n\n Below is the portion of that document that is most relevant to this check:\n\n Use_Typo_Metrics must be enabled. This will force MS Applications to use the\n OS/2 Typo values instead of the Win values. By doing this, we can freely set\n the Win values to avoid clipping and control the line height with the typo\n values. It has the added benefit of future line height compatibility. When\n a new script is added, we simply change the Win values to the new yMin\n and yMax, without needing to worry if the line height have changed.\n ", "result": "PASS", "severity": 10}, {"description": "Ensure fonts have ScriptLangTags declared on the 'meta' table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This font file does not have a 'meta' table. [code: lacks-meta-table]", "status": "WARN", "traceback": null}], "rationale": "\n The OpenType 'meta' table originated at Apple. Microsoft added it to OT with\n just two DataMap records:\n\n - dlng: comma-separated ScriptLangTags that indicate which scripts,\n or languages and scripts, with possible variants, the font is designed for.\n\n - slng: comma-separated ScriptLangTags that indicate which scripts,\n or languages and scripts, with possible variants, the font supports.\n\n\n The slng structure is intended to describe which languages and scripts the\n font overall supports. For example, a Traditional Chinese font that also\n contains Latin characters, can indicate Hant,Latn, showing that it supports\n Hant, the Traditional Chinese variant of the Hani script, and it also\n supports the Latn script.\n\n The dlng structure is far more interesting. A font may contain various glyphs,\n but only a particular subset of the glyphs may be truly \"leading\" in the design,\n while other glyphs may have been included for technical reasons. Such a\n Traditional Chinese font could only list Hant there, showing that it\u2019s designed\n for Traditional Chinese, but the font would omit Latn, because the developers\n don\u2019t think the font is really recommended for purely Latin-script use.\n\n The tags used in the structures can comprise just script, or also language\n and script. For example, if a font has Bulgarian Cyrillic alternates in the\n locl feature for the cyrl BGR OT languagesystem, it could also indicate in\n dlng explicitly that it supports bul-Cyrl. (Note that the scripts and languages\n in meta use the ISO language and script codes, not the OpenType ones).\n\n This check ensures that the font has the meta table containing the\n slng and dlng structures.\n\n All families in the Google Fonts collection should contain the 'meta' table.\n Windows 10 already uses it when deciding on which fonts to fall back to.\n The Google Fonts API and also other environments could use the data for\n smarter filtering. Most importantly, those entries should be added\n to the Noto fonts.\n\n In the font making process, some environments store this data in external\n files already. But the meta table provides a convenient way to store this\n inside the font file, so some tools may add the data, and unrelated tools\n may read this data. This makes the solution much more portable and universal.\n ", "result": "WARN", "severity": 3}, {"description": "Ensure fonts do not contain any pre-production tables.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Tables such as `Debg` are useful in the pre-production stages of font\n development, but add unnecessary bloat to a production font and should\n be removed before release.\n ", "result": "PASS", "severity": 6}, {"description": "Check font family directory name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Directory name is \"rubikmaps\", as expected.", "status": "PASS", "traceback": null}], "rationale": "\n We want the directory name of a font family to be predictable and directly\n derived from the family name, all lowercased and removing spaces.\n ", "result": "PASS"}, {"description": "Check font can render its own name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font can successfully render its own name (Rubik Maps)", "status": "PASS", "traceback": null}], "rationale": "\n A base expectation is that a font family's regular/default (400 roman) style\n can render its 'menu name' (nameID 1) in itself.\n ", "result": "PASS"}, {"description": "Check samples can be rendered.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK.", "status": "PASS", "traceback": null}], "rationale": "\n In order to prevent tofu from being seen on fonts.google.com, this check\n verifies that all samples specified by METADATA.pb can be properly\n rendered by the font.\n ", "result": "PASS"}, {"description": "Check if category on METADATA.pb matches what can be inferred from the family name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK.", "status": "PASS", "traceback": null}], "rationale": "\n Sometimes the font familyname contains words that hint at which is the most\n likely correct category to be declared on METADATA.pb\n ", "result": "PASS"}, {"description": "Check font has the expected color font tables.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks Good!", "status": "PASS", "traceback": null}], "rationale": "\n COLR v0 fonts are widely supported in most browsers so they do not require\n an SVG color table. However, some environments (e.g. Safari, Adobe apps)\n do not currently support COLR v1 so we need to add an SVG table to these fonts,\n except in the case of variable fonts, since SVG does not support\n OpenType Variations.\n\n To automatically generate compatible SVG/COLR tables,\n run the maximum_color tool in nanoemoji:\n https://github.com/googlefonts/nanoemoji\n ", "result": "PASS"}, {"description": "Color layers should have a minimum brightness", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Layers of a COLRv0 font should not be too dark or too bright. When layer colors\n are set explicitly, they can't be changed and they may turn out illegible\n against dark or bright backgrounds.\n\n While traditional color-less fonts can be colored in design apps or CSS, a\n black color definition in a COLRv0 font actually means that that layer will be\n rendered in black regardless of the background color. This leads to text\n becoming invisible against a dark background, for instance when using a dark\n theme in a web browser or operating system.\n\n This check ensures that layer colors are at least 10% bright and at most 90%\n bright, when not already set to the current color (0xFFFF).\n ", "result": "PASS"}, {"description": "Put an empty glyph on GID 1 right after the .notdef glyph for COLRv0 fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n A rendering bug in Windows 10 paints whichever glyph is on GID 1 on top of\n some glyphs, colored or not. This only occurs for COLR version 0 fonts.\n\n Having a glyph with no contours on GID 1 is a practical workaround for that.\n\n See https://github.com/googlefonts/gftools/issues/609\n ", "result": "PASS"}, {"description": "Noto fonts must have an ARTICLE.en_us.html file", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_noto", "status": "SKIP", "traceback": null}], "rationale": "\n Noto fonts are displayed in a different way on the fonts.google.com\n web site, and so must also contain an article about them.\n ", "result": "SKIP"}, {"description": "At least one designer is declared in METADATA.pb", "experimental": "Since 2023/Oct/12", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font designer field is not empty.", "status": "PASS", "traceback": null}], "rationale": "\n Any font published on Google Fonts must credit one or several authors,\n foundry and/or individuals.\n\n Ideally, all authors listed in the upstream repository's AUTHORS.txt should\n be mentioned in the designer field.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"FAIL": 4, "INFO": 7, "PASS": 96, "SKIP": 27, "WARN": 6}}, {"checks": [{"description": "Checking all files are in the same directory.", "key": ["", "", []], "logs": [{"message": "All files are in the same directory.", "status": "PASS", "traceback": null}], "rationale": "\n If the set of font files passed in the command line is not all in the\n same directory, then we warn the user since the tool will interpret the\n set of files as belonging to a single family (and it is unlikely that\n the user would store the files from a single family spreaded\n in several separate directories).\n ", "result": "PASS"}, {"description": "Each font in a family must have the same set of vertical metrics values.", "key": ["", "", []], "logs": [{"message": "Vertical metrics are the same across the family.", "status": "PASS", "traceback": null}], "rationale": "\n We want all fonts within a family to have the same vertical metrics so\n their line spacing is consistent across the family.\n ", "result": "PASS"}, {"description": "Name table records must not have trailing spaces.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No trailing spaces on name table entries.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking OS/2 usWinAscent & usWinDescent.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 usWinAscent & usWinDescent values look good!", "status": "PASS", "traceback": null}], "rationale": "\n A font's winAscent and winDescent values should be greater than or equal to\n the head table's yMax, abs(yMin) values. If they are less than these values,\n clipping can occur on Windows platforms\n (https://github.com/RedHatBrand/Overpass/issues/33).\n\n If the font includes tall/deep writing systems such as Arabic or Devanagari,\n the winAscent and winDescent can be greater than the yMax and absolute yMin\n values to accommodate vowel marks.\n\n When the 'win' Metrics are significantly greater than the UPM, the linespacing\n can appear too loose. To counteract this, enabling the OS/2 fsSelection\n bit 7 (Use_Typo_Metrics), will force Windows to use the OS/2 'typo' values\n instead. This means the font developer can control the linespacing with\n the 'typo' values, whilst avoiding clipping by setting the 'win' values to\n values greater than the yMax and absolute yMin.\n ", "result": "PASS"}, {"description": "Checking OS/2 Metrics match hhea Metrics.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2.sTypoAscender/Descender values match hhea.ascent/descent.", "status": "PASS", "traceback": null}], "rationale": "\n OS/2 and hhea vertical metric values should match. This will produce the\n same linespacing on Mac, GNU+Linux and Windows.\n\n - Mac OS X uses the hhea values.\n - Windows uses OS/2 or Win, depending on the OS or fsSelection bit value.\n\n When OS/2 and hhea vertical metrics match, the same linespacing results on\n macOS, GNU+Linux and Windows. Note that fixing this issue in a previously\n released font may cause reflow in user documents and unhappy users.\n ", "result": "PASS"}, {"description": "Checking with ots-sanitize.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "ots-sanitize passed this file", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Do we have the latest version of FontBakery installed?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "FontBakery is up-to-date.", "status": "PASS", "traceback": null}], "rationale": "\n Running old versions of FontBakery can lead to a poor report which may\n include false WARNs and FAILs due do bugs, as well as outdated\n quality assurance criteria.\n\n Older versions will also not report problems that are detected by new checks\n added to the tool in more recent updates.\n ", "result": "PASS"}, {"description": "Font contains '.notdef' as its first glyph?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n The OpenType specification v1.8.2 recommends that the first glyph is the\n '.notdef' glyph without a codepoint assigned and with a drawing:\n\n The .notdef glyph is very important for providing the user feedback\n that a glyph is not found in the font. This glyph should not be left\n without an outline as the user will only see what looks like a space\n if a glyph is missing and not be aware of the active font\u2019s limitation.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/recom#glyph-0-the-notdef-glyph\n\n Pre-v1.8, it was recommended that fonts should also contain 'space', 'CR'\n and '.null' glyphs. This might have been relevant for MacOS 9 applications.\n ", "result": "PASS"}, {"description": "Font contains glyphs for whitespace characters?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font contains glyphs for whitespace characters.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font has **proper** whitespace glyph names?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has **AGL recommended** names for whitespace glyphs.", "status": "PASS", "traceback": null}], "rationale": "\n This check enforces adherence to recommended whitespace\n (codepoints 0020 and 00A0) glyph names according to the Adobe Glyph List.\n ", "result": "PASS"}, {"description": "Whitespace glyphs have ink?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There is no whitespace glyph with ink.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check that legacy accents aren't used in composite glyphs. (derived from com.google.fonts/check/legacy_accents)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Legacy accents should not be used in accented glyphs. The use of legacy\n accents in accented glyphs breaks the mark to mark combining feature that\n allows a font to stack diacritics over one glyph. Use combining marks\n instead as a component in composite glyphs.\n\n Legacy accents should not have anchors and should have non-zero width.\n They are often used independently of a letter, either as a placeholder\n for an expected combined mark+letter combination in MacOS, or separately.\n For instance, U+00B4 (ACUTE ACCENT) is often mistakenly used as an apostrophe,\n U+0060 (GRAVE ACCENT) is used in Markdown to notify code blocks,\n and ^ is used as an exponential operator in maths.\n ", "result": "PASS"}, {"description": "Check that Arabic spacing symbols U+FBB2\u2013FBC1 aren't classified as marks.", "experimental": "Since 2023/Oct/20", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Unicode has a few spacing symbols representing Arabic dots and other marks,\n but they are purposefully not classified as marks.\n\n Many fonts mistakenly classify them as marks, making them unsuitable\n for their original purpose as stand-alone symbols to used in pedagogical\n contexts discussing Arabic consonantal marks.\n ", "result": "PASS", "severity": 4}, {"description": "Check that glyph for U+0675 ARABIC LETTER HIGH HAMZA is not a mark.", "experimental": "Since 2023/Oct/20", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This check will only run on fonts that have both glyphs U+0621 and U+0675 [code: glyphs-missing]", "status": "SKIP", "traceback": null}], "rationale": "\n Many fonts incorrectly treat ARABIC LETTER HIGH HAMZA (U+0675) as a variant of\n ARABIC HAMZA ABOVE (U+0654) and make it a combining mark of the same size.\n\n But U+0675 is a base letter and should be a variant of ARABIC LETTER HAMZA\n (U+0621) but raised slightly above baseline.\n\n Not doing so effectively makes the font useless for Jawi and\n possibly Kazakh as well.\n ", "result": "SKIP", "severity": 4}, {"description": "Font contains all required tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This font contains the following optional tables:\n\n\t- loca\n\n\t- prep\n\n\t- GPOS\n\n\t- GSUB\n\n\t- gasp [code: optional-tables]", "status": "INFO", "traceback": null}, {"message": "Font contains all required tables.", "status": "PASS", "traceback": null}], "rationale": "\n According to the OpenType spec\n https://docs.microsoft.com/en-us/typography/opentype/spec/otff#required-tables\n\n Whether TrueType or CFF outlines are used in an OpenType font, the following\n tables are required for the font to function correctly:\n\n - cmap (Character to glyph mapping)\u23ce\n - head (Font header)\u23ce\n - hhea (Horizontal header)\u23ce\n - hmtx (Horizontal metrics)\u23ce\n - maxp (Maximum profile)\u23ce\n - name (Naming table)\u23ce\n - OS/2 (OS/2 and Windows specific metrics)\u23ce\n - post (PostScript information)\n\n The spec also documents that variable fonts require the following table:\n\n - STAT (Style attributes)\n\n Depending on the typeface and coverage of a font, certain tables are\n recommended for optimum quality.\n\n For example:\u23ce\n - the performance of a non-linear font is improved if the VDMX, LTSH,\n and hdmx tables are present.\u23ce\n - Non-monospaced Latin fonts should have a kern table.\u23ce\n - A gasp table is necessary if a designer wants to influence the sizes\n at which grayscaling is used under Windows. Etc.\n ", "result": "INFO"}, {"description": "Are there unwanted tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There are no unwanted tables.", "status": "PASS", "traceback": null}], "rationale": "\n Some font editors store source data in their own SFNT tables, and these\n can sometimes sneak into final release files, which should only have\n OpenType spec tables.\n ", "result": "PASS"}, {"description": "Check correctness of STAT table strings", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n On the STAT table, the \"Italic\" keyword must not be used on AxisValues\n for variation axes other than 'ital'.\n ", "result": "SKIP"}, {"description": "Glyph names are all valid?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyph names are all valid.", "status": "PASS", "traceback": null}], "rationale": "\n Microsoft's recommendations for OpenType Fonts states the following:\n\n 'NOTE: The PostScript glyph name must be no longer than 31 characters,\n include only uppercase or lowercase English letters, European digits,\n the period or the underscore, i.e. from the set [A-Za-z0-9_.] and\n should start with a letter, except the special glyph name \".notdef\"\n which starts with a period.'\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/recom#post-table\n\n\n In practice, though, particularly in modern environments, glyph names\n can be as long as 63 characters.\n\n According to the \"Adobe Glyph List Specification\" available at:\n\n https://github.com/adobe-type-tools/agl-specification\n ", "result": "PASS"}, {"description": "Font contains unique glyph names?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyph names are all unique.", "status": "PASS", "traceback": null}], "rationale": "\n Duplicate glyph names prevent font installation on Mac OS X.\n ", "result": "PASS"}, {"description": "List all superfamily filepaths", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps [code: family-path]", "status": "INFO", "traceback": null}], "rationale": "\n This is a merely informative check that lists all sibling families\n detected by fontbakery.\n\n Only the fontfiles in these directories will be considered in\n superfamily-level checks.\n ", "result": "INFO"}, {"description": "Each font in set of sibling families must have the same set of vertical metrics values.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Sibling families were not detected.", "status": "SKIP", "traceback": null}], "rationale": "\n We may want all fonts within a super-family (all sibling families) to have\n the same vertical metrics so their line spacing is consistent\n across the super-family.\n\n This is an experimental extended version of\n com.google.fonts/check/family/vertical_metrics and for now it will only\n result in WARNs.\n ", "result": "SKIP"}, {"description": "Ensure indic fonts have the Indian Rupee Sign glyph.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_indic_font", "status": "SKIP", "traceback": null}], "rationale": "\n Per Bureau of Indian Standards every font supporting one of the\n official Indian languages needs to include Unicode Character\n \u201c\u20b9\u201d (U+20B9) Indian Rupee Sign.\n ", "result": "SKIP"}, {"description": "Check font contains no unreachable glyphs", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The following glyphs could not be reached by codepoint or substitution rules:\n\n\t- LineHorizontalComponent\n\n\t- LineVerticalComponent\n [code: unreachable-glyphs]", "status": "WARN", "traceback": null}], "rationale": "\n Glyphs are either accessible directly through Unicode codepoints or through\n substitution rules.\n\n In Color Fonts, glyphs are also referenced by the COLR table.\n\n Any glyphs not accessible by either of these means\n are redundant and serve only to increase the font's file size.\n ", "result": "WARN"}, {"description": "Check if each glyph has the recommended amount of contours.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.\n\nThe following glyphs do not have the recommended number of contours:\n\n\t- Glyph name: exclam\tContours detected: 164\tExpected: 2\n\n\t- Glyph name: quotedbl\tContours detected: 34\tExpected: 2\n\n\t- Glyph name: numbersign\tContours detected: 256\tExpected: 2\n\n\t- Glyph name: dollar\tContours detected: 474\tExpected: 1, 3 or 5\n\n\t- Glyph name: percent\tContours detected: 336\tExpected: 5\n\n\t- Glyph name: ampersand\tContours detected: 280\tExpected: 1, 2 or 3\n\n\t- Glyph name: quotesingle\tContours detected: 27\tExpected: 1\n\n\t- Glyph name: parenleft\tContours detected: 262\tExpected: 1\n\n\t- Glyph name: parenright\tContours detected: 205\tExpected: 1\n\n\t- Glyph name: asterisk\tContours detected: 145\tExpected: 1 or 4\n\n\t- Glyph name: plus\tContours detected: 183\tExpected: 1\n\n\t- Glyph name: comma\tContours detected: 80\tExpected: 1\n\n\t- Glyph name: hyphen\tContours detected: 70\tExpected: 1\n\n\t- Glyph name: period\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: slash\tContours detected: 215\tExpected: 1\n\n\t- Glyph name: zero\tContours detected: 432\tExpected: 2 or 3\n\n\t- Glyph name: one\tContours detected: 277\tExpected: 1\n\n\t- Glyph name: two\tContours detected: 371\tExpected: 1\n\n\t- Glyph name: three\tContours detected: 411\tExpected: 1\n\n\t- Glyph name: four\tContours detected: 344\tExpected: 1 or 2\n\n\t- Glyph name: five\tContours detected: 406\tExpected: 1\n\n\t- Glyph name: six\tContours detected: 407\tExpected: 1 or 2\n\n\t- Glyph name: seven\tContours detected: 291\tExpected: 1\n\n\t- Glyph name: eight\tContours detected: 452\tExpected: 3\n\n\t- Glyph name: nine\tContours detected: 316\tExpected: 1 or 2\n\n\t- Glyph name: colon\tContours detected: 107\tExpected: 2\n\n\t- Glyph name: semicolon\tContours detected: 154\tExpected: 2\n\n\t- Glyph name: less\tContours detected: 183\tExpected: 1\n\n\t- Glyph name: equal\tContours detected: 119\tExpected: 2\n\n\t- Glyph name: greater\tContours detected: 120\tExpected: 1\n\n\t- Glyph name: question\tContours detected: 285\tExpected: 2\n\n\t- Glyph name: at\tContours detected: 212\tExpected: 2\n\n\t- Glyph name: A\tContours detected: 352\tExpected: 2\n\n\t- Glyph name: B\tContours detected: 301\tExpected: 2 or 3\n\n\t- Glyph name: C\tContours detected: 374\tExpected: 1\n\n\t- Glyph name: D\tContours detected: 420\tExpected: 2\n\n\t- Glyph name: E\tContours detected: 255\tExpected: 1\n\n\t- Glyph name: F\tContours detected: 325\tExpected: 1\n\n\t- Glyph name: G\tContours detected: 394\tExpected: 1\n\n\t- Glyph name: H\tContours detected: 525\tExpected: 1\n\n\t- Glyph name: I\tContours detected: 187\tExpected: 1\n\n\t- Glyph name: J\tContours detected: 336\tExpected: 1\n\n\t- Glyph name: K\tContours detected: 450\tExpected: 1 or 2\n\n\t- Glyph name: L\tContours detected: 286\tExpected: 1\n\n\t- Glyph name: M\tContours detected: 228\tExpected: 1\n\n\t- Glyph name: N\tContours detected: 418\tExpected: 1\n\n\t- Glyph name: O\tContours detected: 474\tExpected: 2\n\n\t- Glyph name: P\tContours detected: 283\tExpected: 1 or 2\n\n\t- Glyph name: Q\tContours detected: 431\tExpected: 2\n\n\t- Glyph name: R\tContours detected: 457\tExpected: 1 or 2\n\n\t- Glyph name: S\tContours detected: 217\tExpected: 1\n\n\t- Glyph name: T\tContours detected: 255\tExpected: 1\n\n\t- Glyph name: U\tContours detected: 366\tExpected: 1\n\n\t- Glyph name: V\tContours detected: 290\tExpected: 1\n\n\t- Glyph name: W\tContours detected: 547\tExpected: 1 or 2\n\n\t- Glyph name: X\tContours detected: 356\tExpected: 1\n\n\t- Glyph name: Y\tContours detected: 261\tExpected: 1\n\n\t- Glyph name: Z\tContours detected: 408\tExpected: 1\n\n\t- Glyph name: bracketleft\tContours detected: 339\tExpected: 1\n\n\t- Glyph name: backslash\tContours detected: 134\tExpected: 1\n\n\t- Glyph name: bracketright\tContours detected: 240\tExpected: 1\n\n\t- Glyph name: asciicircum\tContours detected: 16\tExpected: 1\n\n\t- Glyph name: underscore\tContours detected: 66\tExpected: 1\n\n\t- Glyph name: grave\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: a\tContours detected: 229\tExpected: 2\n\n\t- Glyph name: b\tContours detected: 345\tExpected: 2\n\n\t- Glyph name: c\tContours detected: 239\tExpected: 1\n\n\t- Glyph name: d\tContours detected: 465\tExpected: 2\n\n\t- Glyph name: e\tContours detected: 198\tExpected: 2\n\n\t- Glyph name: f\tContours detected: 307\tExpected: 1\n\n\t- Glyph name: g\tContours detected: 331\tExpected: 2 or 3\n\n\t- Glyph name: h\tContours detected: 353\tExpected: 1\n\n\t- Glyph name: i\tContours detected: 116\tExpected: 2\n\n\t- Glyph name: j\tContours detected: 208\tExpected: 2\n\n\t- Glyph name: k\tContours detected: 298\tExpected: 1 or 2\n\n\t- Glyph name: l\tContours detected: 248\tExpected: 1\n\n\t- Glyph name: m\tContours detected: 289\tExpected: 1\n\n\t- Glyph name: n\tContours detected: 257\tExpected: 1\n\n\t- Glyph name: o\tContours detected: 250\tExpected: 2\n\n\t- Glyph name: p\tContours detected: 338\tExpected: 2\n\n\t- Glyph name: q\tContours detected: 397\tExpected: 2\n\n\t- Glyph name: r\tContours detected: 200\tExpected: 1\n\n\t- Glyph name: s\tContours detected: 162\tExpected: 1\n\n\t- Glyph name: t\tContours detected: 207\tExpected: 1\n\n\t- Glyph name: u\tContours detected: 362\tExpected: 1\n\n\t- Glyph name: v\tContours detected: 163\tExpected: 1\n\n\t- Glyph name: w\tContours detected: 233\tExpected: 1\n\n\t- Glyph name: x\tContours detected: 207\tExpected: 1\n\n\t- Glyph name: y\tContours detected: 290\tExpected: 1\n\n\t- Glyph name: z\tContours detected: 198\tExpected: 1\n\n\t- Glyph name: braceleft\tContours detected: 250\tExpected: 1\n\n\t- Glyph name: bar\tContours detected: 235\tExpected: 1\n\n\t- Glyph name: braceright\tContours detected: 272\tExpected: 1\n\n\t- Glyph name: asciitilde\tContours detected: 100\tExpected: 1\n\n\t- Glyph name: exclamdown\tContours detected: 148\tExpected: 2\n\n\t- Glyph name: cent\tContours detected: 278\tExpected: 1 or 2\n\n\t- Glyph name: sterling\tContours detected: 317\tExpected: 1 or 2\n\n\t- Glyph name: currency\tContours detected: 167\tExpected: 2\n\n\t- Glyph name: yen\tContours detected: 231\tExpected: 1 or 2\n\n\t- Glyph name: brokenbar\tContours detected: 154\tExpected: 2\n\n\t- Glyph name: section\tContours detected: 505\tExpected: 2\n\n\t- Glyph name: dieresis\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: copyright\tContours detected: 254\tExpected: 3\n\n\t- Glyph name: ordfeminine\tContours detected: 63\tExpected: 2 or 3\n\n\t- Glyph name: guillemotleft\tContours detected: 203\tExpected: 2\n\n\t- Glyph name: logicalnot\tContours detected: 62\tExpected: 1\n\n\t- Glyph name: uni00AD\tContours detected: 70\tExpected: 0\n\n\t- Glyph name: registered\tContours detected: 315\tExpected: 3 or 4\n\n\t- Glyph name: macron\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: degree\tContours detected: 79\tExpected: 2\n\n\t- Glyph name: plusminus\tContours detected: 245\tExpected: 1 or 2\n\n\t- Glyph name: uni00B2\tContours detected: 98\tExpected: 1\n\n\t- Glyph name: uni00B3\tContours detected: 77\tExpected: 1\n\n\t- Glyph name: acute\tContours detected: 11\tExpected: 1\n\n\t- Glyph name: uni00B5\tContours detected: 373\tExpected: 1\n\n\t- Glyph name: paragraph\tContours detected: 264\tExpected: 1, 2 or 3\n\n\t- Glyph name: periodcentered\tContours detected: 78\tExpected: 1\n\n\t- Glyph name: cedilla\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni00B9\tContours detected: 17\tExpected: 1\n\n\t- Glyph name: ordmasculine\tContours detected: 27\tExpected: 2 or 3\n\n\t- Glyph name: guillemotright\tContours detected: 228\tExpected: 2\n\n\t- Glyph name: onequarter\tContours detected: 173\tExpected: 3 or 4\n\n\t- Glyph name: onehalf\tContours detected: 238\tExpected: 3\n\n\t- Glyph name: threequarters\tContours detected: 233\tExpected: 3 or 4\n\n\t- Glyph name: questiondown\tContours detected: 214\tExpected: 2\n\n\t- Glyph name: Agrave\tContours detected: 386\tExpected: 3\n\n\t- Glyph name: Aacute\tContours detected: 355\tExpected: 3\n\n\t- Glyph name: Acircumflex\tContours detected: 372\tExpected: 3\n\n\t- Glyph name: Atilde\tContours detected: 370\tExpected: 3\n\n\t- Glyph name: Adieresis\tContours detected: 369\tExpected: 4\n\n\t- Glyph name: Aring\tContours detected: 353\tExpected: 3 or 4\n\n\t- Glyph name: AE\tContours detected: 496\tExpected: 2\n\n\t- Glyph name: Ccedilla\tContours detected: 466\tExpected: 1 or 2\n\n\t- Glyph name: Egrave\tContours detected: 289\tExpected: 2\n\n\t- Glyph name: Eacute\tContours detected: 258\tExpected: 2\n\n\t- Glyph name: Ecircumflex\tContours detected: 275\tExpected: 2\n\n\t- Glyph name: Edieresis\tContours detected: 272\tExpected: 3\n\n\t- Glyph name: Igrave\tContours detected: 221\tExpected: 2\n\n\t- Glyph name: Iacute\tContours detected: 190\tExpected: 2\n\n\t- Glyph name: Icircumflex\tContours detected: 207\tExpected: 2\n\n\t- Glyph name: Idieresis\tContours detected: 204\tExpected: 3\n\n\t- Glyph name: Eth\tContours detected: 371\tExpected: 2\n\n\t- Glyph name: Ntilde\tContours detected: 436\tExpected: 2\n\n\t- Glyph name: Ograve\tContours detected: 508\tExpected: 3\n\n\t- Glyph name: Oacute\tContours detected: 477\tExpected: 3\n\n\t- Glyph name: Ocircumflex\tContours detected: 494\tExpected: 3\n\n\t- Glyph name: Otilde\tContours detected: 492\tExpected: 3\n\n\t- Glyph name: Odieresis\tContours detected: 491\tExpected: 4\n\n\t- Glyph name: multiply\tContours detected: 158\tExpected: 1\n\n\t- Glyph name: Oslash\tContours detected: 568\tExpected: 2 or 3\n\n\t- Glyph name: Ugrave\tContours detected: 400\tExpected: 2\n\n\t- Glyph name: Uacute\tContours detected: 369\tExpected: 2\n\n\t- Glyph name: Ucircumflex\tContours detected: 386\tExpected: 2\n\n\t- Glyph name: Udieresis\tContours detected: 383\tExpected: 3\n\n\t- Glyph name: Yacute\tContours detected: 264\tExpected: 2\n\n\t- Glyph name: Thorn\tContours detected: 363\tExpected: 1 or 2\n\n\t- Glyph name: germandbls\tContours detected: 307\tExpected: 1\n\n\t- Glyph name: agrave\tContours detected: 235\tExpected: 3\n\n\t- Glyph name: aacute\tContours detected: 240\tExpected: 3\n\n\t- Glyph name: acircumflex\tContours detected: 254\tExpected: 3\n\n\t- Glyph name: atilde\tContours detected: 251\tExpected: 3\n\n\t- Glyph name: adieresis\tContours detected: 234\tExpected: 4\n\n\t- Glyph name: aring\tContours detected: 230\tExpected: 4\n\n\t- Glyph name: ae\tContours detected: 307\tExpected: 3\n\n\t- Glyph name: ccedilla\tContours detected: 237\tExpected: 1 or 2\n\n\t- Glyph name: egrave\tContours detected: 204\tExpected: 3\n\n\t- Glyph name: eacute\tContours detected: 209\tExpected: 3\n\n\t- Glyph name: ecircumflex\tContours detected: 223\tExpected: 3\n\n\t- Glyph name: edieresis\tContours detected: 203\tExpected: 4\n\n\t- Glyph name: igrave\tContours detected: 102\tExpected: 2\n\n\t- Glyph name: iacute\tContours detected: 107\tExpected: 2\n\n\t- Glyph name: icircumflex\tContours detected: 121\tExpected: 2\n\n\t- Glyph name: idieresis\tContours detected: 101\tExpected: 3\n\n\t- Glyph name: eth\tContours detected: 312\tExpected: 2\n\n\t- Glyph name: ntilde\tContours detected: 279\tExpected: 2\n\n\t- Glyph name: ograve\tContours detected: 256\tExpected: 3\n\n\t- Glyph name: oacute\tContours detected: 261\tExpected: 3\n\n\t- Glyph name: ocircumflex\tContours detected: 275\tExpected: 3\n\n\t- Glyph name: otilde\tContours detected: 272\tExpected: 3\n\n\t- Glyph name: odieresis\tContours detected: 255\tExpected: 4\n\n\t- Glyph name: divide\tContours detected: 188\tExpected: 3\n\n\t- Glyph name: oslash\tContours detected: 303\tExpected: 3\n\n\t- Glyph name: ugrave\tContours detected: 368\tExpected: 2\n\n\t- Glyph name: uacute\tContours detected: 373\tExpected: 2\n\n\t- Glyph name: ucircumflex\tContours detected: 387\tExpected: 2\n\n\t- Glyph name: udieresis\tContours detected: 367\tExpected: 3\n\n\t- Glyph name: yacute\tContours detected: 301\tExpected: 2\n\n\t- Glyph name: thorn\tContours detected: 494\tExpected: 2\n\n\t- Glyph name: ydieresis\tContours detected: 295\tExpected: 3\n\n\t- Glyph name: Amacron\tContours detected: 364\tExpected: 3\n\n\t- Glyph name: amacron\tContours detected: 263\tExpected: 3\n\n\t- Glyph name: Abreve\tContours detected: 387\tExpected: 3\n\n\t- Glyph name: abreve\tContours detected: 243\tExpected: 3\n\n\t- Glyph name: Aogonek\tContours detected: 574\tExpected: 2 or 3\n\n\t- Glyph name: aogonek\tContours detected: 265\tExpected: 2\n\n\t- Glyph name: Cacute\tContours detected: 377\tExpected: 2\n\n\t- Glyph name: cacute\tContours detected: 250\tExpected: 2\n\n\t- Glyph name: Ccircumflex\tContours detected: 394\tExpected: 2\n\n\t- Glyph name: ccircumflex\tContours detected: 264\tExpected: 2\n\n\t- Glyph name: Cdotaccent\tContours detected: 392\tExpected: 2\n\n\t- Glyph name: cdotaccent\tContours detected: 240\tExpected: 2\n\n\t- Glyph name: Ccaron\tContours detected: 387\tExpected: 2\n\n\t- Glyph name: ccaron\tContours detected: 256\tExpected: 2\n\n\t- Glyph name: Dcaron\tContours detected: 433\tExpected: 3\n\n\t- Glyph name: dcaron\tContours detected: 478\tExpected: 3\n\n\t- Glyph name: Dcroat\tContours detected: 482\tExpected: 2\n\n\t- Glyph name: dcroat\tContours detected: 295\tExpected: 2\n\n\t- Glyph name: Emacron\tContours detected: 267\tExpected: 2\n\n\t- Glyph name: emacron\tContours detected: 232\tExpected: 3\n\n\t- Glyph name: Ebreve\tContours detected: 290\tExpected: 2\n\n\t- Glyph name: ebreve\tContours detected: 212\tExpected: 3\n\n\t- Glyph name: Edotaccent\tContours detected: 273\tExpected: 2\n\n\t- Glyph name: edotaccent\tContours detected: 199\tExpected: 3\n\n\t- Glyph name: Eogonek\tContours detected: 255\tExpected: 1 or 2\n\n\t- Glyph name: eogonek\tContours detected: 237\tExpected: 2\n\n\t- Glyph name: Ecaron\tContours detected: 268\tExpected: 2\n\n\t- Glyph name: ecaron\tContours detected: 215\tExpected: 3\n\n\t- Glyph name: Gcircumflex\tContours detected: 414\tExpected: 2\n\n\t- Glyph name: gcircumflex\tContours detected: 356\tExpected: 3 or 4\n\n\t- Glyph name: Gbreve\tContours detected: 429\tExpected: 2\n\n\t- Glyph name: gbreve\tContours detected: 345\tExpected: 3 or 4\n\n\t- Glyph name: Gdotaccent\tContours detected: 412\tExpected: 2\n\n\t- Glyph name: gdotaccent\tContours detected: 332\tExpected: 3 or 4\n\n\t- Glyph name: uni0122\tContours detected: 415\tExpected: 2\n\n\t- Glyph name: uni0123\tContours detected: 351\tExpected: 3 or 4\n\n\t- Glyph name: Hcircumflex\tContours detected: 545\tExpected: 2\n\n\t- Glyph name: hcircumflex\tContours detected: 378\tExpected: 2\n\n\t- Glyph name: Hbar\tContours detected: 499\tExpected: 2\n\n\t- Glyph name: hbar\tContours detected: 336\tExpected: 1\n\n\t- Glyph name: Itilde\tContours detected: 205\tExpected: 2\n\n\t- Glyph name: itilde\tContours detected: 118\tExpected: 2\n\n\t- Glyph name: Imacron\tContours detected: 199\tExpected: 2\n\n\t- Glyph name: imacron\tContours detected: 130\tExpected: 2\n\n\t- Glyph name: Ibreve\tContours detected: 222\tExpected: 2\n\n\t- Glyph name: ibreve\tContours detected: 110\tExpected: 2\n\n\t- Glyph name: Iogonek\tContours detected: 280\tExpected: 1 or 2\n\n\t- Glyph name: iogonek\tContours detected: 167\tExpected: 2 or 3\n\n\t- Glyph name: Idotaccent\tContours detected: 205\tExpected: 2\n\n\t- Glyph name: dotlessi\tContours detected: 96\tExpected: 1\n\n\t- Glyph name: IJ\tContours detected: 419\tExpected: 1 or 2\n\n\t- Glyph name: ij\tContours detected: 324\tExpected: 3 or 4\n\n\t- Glyph name: Jcircumflex\tContours detected: 356\tExpected: 2\n\n\t- Glyph name: jcircumflex\tContours detected: 195\tExpected: 2\n\n\t- Glyph name: uni0136\tContours detected: 471\tExpected: 2 or 3\n\n\t- Glyph name: uni0137\tContours detected: 318\tExpected: 2 or 3\n\n\t- Glyph name: kgreenlandic\tContours detected: 296\tExpected: 1 or 2\n\n\t- Glyph name: Lacute\tContours detected: 289\tExpected: 2\n\n\t- Glyph name: lacute\tContours detected: 259\tExpected: 2\n\n\t- Glyph name: uni013B\tContours detected: 307\tExpected: 2\n\n\t- Glyph name: uni013C\tContours detected: 268\tExpected: 2\n\n\t- Glyph name: Lcaron\tContours detected: 299\tExpected: 2\n\n\t- Glyph name: lcaron\tContours detected: 261\tExpected: 2\n\n\t- Glyph name: Ldot\tContours detected: 287\tExpected: 2\n\n\t- Glyph name: ldot\tContours detected: 249\tExpected: 2\n\n\t- Glyph name: Lslash\tContours detected: 258\tExpected: 1\n\n\t- Glyph name: lslash\tContours detected: 229\tExpected: 1\n\n\t- Glyph name: Nacute\tContours detected: 421\tExpected: 2\n\n\t- Glyph name: nacute\tContours detected: 268\tExpected: 2\n\n\t- Glyph name: uni0145\tContours detected: 439\tExpected: 2\n\n\t- Glyph name: uni0146\tContours detected: 277\tExpected: 2\n\n\t- Glyph name: Ncaron\tContours detected: 431\tExpected: 2\n\n\t- Glyph name: ncaron\tContours detected: 274\tExpected: 2\n\n\t- Glyph name: napostrophe\tContours detected: 277\tExpected: 2\n\n\t- Glyph name: Eng\tContours detected: 488\tExpected: 1\n\n\t- Glyph name: eng\tContours detected: 420\tExpected: 1\n\n\t- Glyph name: Omacron\tContours detected: 486\tExpected: 3\n\n\t- Glyph name: omacron\tContours detected: 284\tExpected: 3\n\n\t- Glyph name: Obreve\tContours detected: 509\tExpected: 3\n\n\t- Glyph name: obreve\tContours detected: 264\tExpected: 3\n\n\t- Glyph name: Ohungarumlaut\tContours detected: 521\tExpected: 4\n\n\t- Glyph name: ohungarumlaut\tContours detected: 252\tExpected: 4\n\n\t- Glyph name: OE\tContours detected: 546\tExpected: 2\n\n\t- Glyph name: oe\tContours detected: 431\tExpected: 3\n\n\t- Glyph name: Racute\tContours detected: 460\tExpected: 3\n\n\t- Glyph name: racute\tContours detected: 211\tExpected: 2\n\n\t- Glyph name: uni0156\tContours detected: 478\tExpected: 3\n\n\t- Glyph name: uni0157\tContours detected: 220\tExpected: 2\n\n\t- Glyph name: Rcaron\tContours detected: 470\tExpected: 3\n\n\t- Glyph name: rcaron\tContours detected: 217\tExpected: 2\n\n\t- Glyph name: Sacute\tContours detected: 220\tExpected: 2\n\n\t- Glyph name: sacute\tContours detected: 173\tExpected: 2\n\n\t- Glyph name: Scircumflex\tContours detected: 237\tExpected: 2\n\n\t- Glyph name: scircumflex\tContours detected: 187\tExpected: 2\n\n\t- Glyph name: Scedilla\tContours detected: 443\tExpected: 1 or 2\n\n\t- Glyph name: scedilla\tContours detected: 220\tExpected: 1 or 2\n\n\t- Glyph name: Scaron\tContours detected: 230\tExpected: 2\n\n\t- Glyph name: scaron\tContours detected: 179\tExpected: 2\n\n\t- Glyph name: Tcaron\tContours detected: 268\tExpected: 2\n\n\t- Glyph name: tcaron\tContours detected: 220\tExpected: 2\n\n\t- Glyph name: Tbar\tContours detected: 291\tExpected: 1\n\n\t- Glyph name: tbar\tContours detected: 196\tExpected: 1\n\n\t- Glyph name: Utilde\tContours detected: 384\tExpected: 2\n\n\t- Glyph name: utilde\tContours detected: 384\tExpected: 2\n\n\t- Glyph name: Umacron\tContours detected: 378\tExpected: 2\n\n\t- Glyph name: umacron\tContours detected: 396\tExpected: 2\n\n\t- Glyph name: Ubreve\tContours detected: 401\tExpected: 2\n\n\t- Glyph name: ubreve\tContours detected: 376\tExpected: 2\n\n\t- Glyph name: Uring\tContours detected: 367\tExpected: 3\n\n\t- Glyph name: uring\tContours detected: 363\tExpected: 3\n\n\t- Glyph name: Uhungarumlaut\tContours detected: 413\tExpected: 3\n\n\t- Glyph name: uhungarumlaut\tContours detected: 364\tExpected: 3\n\n\t- Glyph name: Uogonek\tContours detected: 473\tExpected: 1\n\n\t- Glyph name: uogonek\tContours detected: 279\tExpected: 1\n\n\t- Glyph name: Wcircumflex\tContours detected: 567\tExpected: 2\n\n\t- Glyph name: wcircumflex\tContours detected: 258\tExpected: 2\n\n\t- Glyph name: Ycircumflex\tContours detected: 281\tExpected: 2\n\n\t- Glyph name: ycircumflex\tContours detected: 315\tExpected: 2\n\n\t- Glyph name: Ydieresis\tContours detected: 278\tExpected: 3\n\n\t- Glyph name: Zacute\tContours detected: 411\tExpected: 2\n\n\t- Glyph name: zacute\tContours detected: 209\tExpected: 2\n\n\t- Glyph name: Zdotaccent\tContours detected: 426\tExpected: 2\n\n\t- Glyph name: zdotaccent\tContours detected: 199\tExpected: 2\n\n\t- Glyph name: Zcaron\tContours detected: 421\tExpected: 2\n\n\t- Glyph name: zcaron\tContours detected: 215\tExpected: 2\n\n\t- Glyph name: longs\tContours detected: 142\tExpected: 1\n\n\t- Glyph name: florin\tContours detected: 346\tExpected: 1\n\n\t- Glyph name: AEacute\tContours detected: 499\tExpected: 3\n\n\t- Glyph name: aeacute\tContours detected: 318\tExpected: 4\n\n\t- Glyph name: Oslashacute\tContours detected: 571\tExpected: 4\n\n\t- Glyph name: oslashacute\tContours detected: 314\tExpected: 4\n\n\t- Glyph name: uni0218\tContours detected: 238\tExpected: 2\n\n\t- Glyph name: uni0219\tContours detected: 182\tExpected: 2\n\n\t- Glyph name: uni021A\tContours detected: 276\tExpected: 2\n\n\t- Glyph name: uni021B\tContours detected: 227\tExpected: 2\n\n\t- Glyph name: uni0237\tContours detected: 170\tExpected: 1\n\n\t- Glyph name: uni02BC\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: circumflex\tContours detected: 25\tExpected: 1\n\n\t- Glyph name: caron\tContours detected: 17\tExpected: 1\n\n\t- Glyph name: breve\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: ring\tContours detected: 1\tExpected: 2\n\n\t- Glyph name: ogonek\tContours detected: 81\tExpected: 1\n\n\t- Glyph name: tilde\tContours detected: 22\tExpected: 1\n\n\t- Glyph name: gravecomb\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: acutecomb\tContours detected: 11\tExpected: 1\n\n\t- Glyph name: uni0302\tContours detected: 25\tExpected: 1\n\n\t- Glyph name: tildecomb\tContours detected: 22\tExpected: 1\n\n\t- Glyph name: uni0304\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: uni0306\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: uni0308\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni030A\tContours detected: 1\tExpected: 2\n\n\t- Glyph name: uni030C\tContours detected: 17\tExpected: 1\n\n\t- Glyph name: uni0312\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: uni0326\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: uni0327\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0328\tContours detected: 81\tExpected: 1\n\n\t- Glyph name: uni0335\tContours detected: 16\tExpected: 1\n\n\t- Glyph name: uni0337\tContours detected: 53\tExpected: 1\n\n\t- Glyph name: uni0338\tContours detected: 94\tExpected: 1\n\n\t- Glyph name: uni0400\tContours detected: 289\tExpected: 2\n\n\t- Glyph name: uni0401\tContours detected: 260\tExpected: 3\n\n\t- Glyph name: uni0402\tContours detected: 286\tExpected: 1\n\n\t- Glyph name: uni0403\tContours detected: 236\tExpected: 2\n\n\t- Glyph name: uni0404\tContours detected: 400\tExpected: 1\n\n\t- Glyph name: uni0405\tContours detected: 217\tExpected: 1\n\n\t- Glyph name: uni0406\tContours detected: 187\tExpected: 1\n\n\t- Glyph name: uni0407\tContours detected: 192\tExpected: 3\n\n\t- Glyph name: uni0408\tContours detected: 336\tExpected: 1\n\n\t- Glyph name: uni0409\tContours detected: 612\tExpected: 2\n\n\t- Glyph name: uni040A\tContours detected: 492\tExpected: 2\n\n\t- Glyph name: uni040B\tContours detected: 368\tExpected: 1\n\n\t- Glyph name: uni040C\tContours detected: 345\tExpected: 2\n\n\t- Glyph name: uni040D\tContours detected: 536\tExpected: 2\n\n\t- Glyph name: uni040E\tContours detected: 266\tExpected: 2\n\n\t- Glyph name: uni040F\tContours detected: 411\tExpected: 1\n\n\t- Glyph name: uni0410\tContours detected: 352\tExpected: 2\n\n\t- Glyph name: uni0411\tContours detected: 471\tExpected: 2\n\n\t- Glyph name: uni0412\tContours detected: 301\tExpected: 3\n\n\t- Glyph name: uni0413\tContours detected: 233\tExpected: 1\n\n\t- Glyph name: uni0414\tContours detected: 334\tExpected: 2\n\n\t- Glyph name: uni0415\tContours detected: 255\tExpected: 1\n\n\t- Glyph name: uni0416\tContours detected: 779\tExpected: 1\n\n\t- Glyph name: uni0417\tContours detected: 343\tExpected: 1\n\n\t- Glyph name: uni0418\tContours detected: 502\tExpected: 1\n\n\t- Glyph name: uni0419\tContours detected: 517\tExpected: 2\n\n\t- Glyph name: uni041A\tContours detected: 342\tExpected: 1\n\n\t- Glyph name: uni041B\tContours detected: 429\tExpected: 1\n\n\t- Glyph name: uni041C\tContours detected: 228\tExpected: 1\n\n\t- Glyph name: uni041D\tContours detected: 525\tExpected: 1\n\n\t- Glyph name: uni041E\tContours detected: 474\tExpected: 2\n\n\t- Glyph name: uni041F\tContours detected: 443\tExpected: 1\n\n\t- Glyph name: uni0420\tContours detected: 283\tExpected: 1 or 2\n\n\t- Glyph name: uni0421\tContours detected: 374\tExpected: 1\n\n\t- Glyph name: uni0422\tContours detected: 255\tExpected: 1\n\n\t- Glyph name: uni0423\tContours detected: 251\tExpected: 1\n\n\t- Glyph name: uni0424\tContours detected: 595\tExpected: 3\n\n\t- Glyph name: uni0425\tContours detected: 356\tExpected: 1\n\n\t- Glyph name: uni0426\tContours detected: 451\tExpected: 1\n\n\t- Glyph name: uni0427\tContours detected: 339\tExpected: 1\n\n\t- Glyph name: uni0428\tContours detected: 640\tExpected: 1\n\n\t- Glyph name: uni0429\tContours detected: 459\tExpected: 1\n\n\t- Glyph name: uni042A\tContours detected: 455\tExpected: 2\n\n\t- Glyph name: uni042B\tContours detected: 520\tExpected: 3\n\n\t- Glyph name: uni042C\tContours detected: 231\tExpected: 2\n\n\t- Glyph name: uni042D\tContours detected: 335\tExpected: 1\n\n\t- Glyph name: uni042E\tContours detected: 585\tExpected: 2\n\n\t- Glyph name: uni042F\tContours detected: 435\tExpected: 2\n\n\t- Glyph name: uni0430\tContours detected: 229\tExpected: 2\n\n\t- Glyph name: uni0431\tContours detected: 262\tExpected: 2\n\n\t- Glyph name: uni0432\tContours detected: 349\tExpected: 3\n\n\t- Glyph name: uni0433\tContours detected: 91\tExpected: 1\n\n\t- Glyph name: uni0434\tContours detected: 433\tExpected: 2\n\n\t- Glyph name: uni0435\tContours detected: 198\tExpected: 2\n\n\t- Glyph name: uni0436\tContours detected: 454\tExpected: 1\n\n\t- Glyph name: uni0437\tContours detected: 176\tExpected: 1\n\n\t- Glyph name: uni0438\tContours detected: 293\tExpected: 1\n\n\t- Glyph name: uni0439\tContours detected: 324\tExpected: 2\n\n\t- Glyph name: uni043A\tContours detected: 278\tExpected: 1\n\n\t- Glyph name: uni043B\tContours detected: 276\tExpected: 1\n\n\t- Glyph name: uni043C\tContours detected: 309\tExpected: 1\n\n\t- Glyph name: uni043D\tContours detected: 222\tExpected: 1\n\n\t- Glyph name: uni043E\tContours detected: 250\tExpected: 2\n\n\t- Glyph name: uni043F\tContours detected: 188\tExpected: 1\n\n\t- Glyph name: uni0440\tContours detected: 338\tExpected: 2\n\n\t- Glyph name: uni0441\tContours detected: 239\tExpected: 1\n\n\t- Glyph name: uni0442\tContours detected: 159\tExpected: 1\n\n\t- Glyph name: uni0443\tContours detected: 352\tExpected: 1\n\n\t- Glyph name: uni0444\tContours detected: 434\tExpected: 3\n\n\t- Glyph name: uni0445\tContours detected: 207\tExpected: 1\n\n\t- Glyph name: uni0446\tContours detected: 338\tExpected: 1\n\n\t- Glyph name: uni0447\tContours detected: 298\tExpected: 1\n\n\t- Glyph name: uni0448\tContours detected: 302\tExpected: 1\n\n\t- Glyph name: uni0449\tContours detected: 384\tExpected: 1\n\n\t- Glyph name: uni044A\tContours detected: 237\tExpected: 2\n\n\t- Glyph name: uni044B\tContours detected: 273\tExpected: 3\n\n\t- Glyph name: uni044C\tContours detected: 222\tExpected: 2\n\n\t- Glyph name: uni044D\tContours detected: 141\tExpected: 1\n\n\t- Glyph name: uni044E\tContours detected: 354\tExpected: 2\n\n\t- Glyph name: uni044F\tContours detected: 230\tExpected: 2\n\n\t- Glyph name: uni0450\tContours detected: 204\tExpected: 3\n\n\t- Glyph name: uni0451\tContours detected: 203\tExpected: 4\n\n\t- Glyph name: uni0452\tContours detected: 463\tExpected: 1\n\n\t- Glyph name: uni0453\tContours detected: 102\tExpected: 2\n\n\t- Glyph name: uni0454\tContours detected: 221\tExpected: 1\n\n\t- Glyph name: uni0455\tContours detected: 162\tExpected: 1\n\n\t- Glyph name: uni0456\tContours detected: 116\tExpected: 2\n\n\t- Glyph name: uni0457\tContours detected: 101\tExpected: 3\n\n\t- Glyph name: uni0458\tContours detected: 208\tExpected: 2\n\n\t- Glyph name: uni0459\tContours detected: 272\tExpected: 2\n\n\t- Glyph name: uni045A\tContours detected: 270\tExpected: 2\n\n\t- Glyph name: uni045B\tContours detected: 438\tExpected: 1\n\n\t- Glyph name: uni045C\tContours detected: 289\tExpected: 2\n\n\t- Glyph name: uni045D\tContours detected: 299\tExpected: 2\n\n\t- Glyph name: uni045E\tContours detected: 383\tExpected: 2\n\n\t- Glyph name: uni045F\tContours detected: 349\tExpected: 1 or 2\n\n\t- Glyph name: uni0462\tContours detected: 250\tExpected: 2\n\n\t- Glyph name: uni0463\tContours detected: 288\tExpected: 2\n\n\t- Glyph name: uni046A\tContours detected: 584\tExpected: 2\n\n\t- Glyph name: uni046B\tContours detected: 301\tExpected: 2\n\n\t- Glyph name: uni0472\tContours detected: 478\tExpected: 3\n\n\t- Glyph name: uni0473\tContours detected: 250\tExpected: 3\n\n\t- Glyph name: uni0474\tContours detected: 332\tExpected: 1\n\n\t- Glyph name: uni0475\tContours detected: 246\tExpected: 1\n\n\t- Glyph name: uni0490\tContours detected: 409\tExpected: 1\n\n\t- Glyph name: uni0491\tContours detected: 157\tExpected: 1\n\n\t- Glyph name: uni0492\tContours detected: 210\tExpected: 1\n\n\t- Glyph name: uni0493\tContours detected: 107\tExpected: 1\n\n\t- Glyph name: uni0494\tContours detected: 338\tExpected: 1\n\n\t- Glyph name: uni0495\tContours detected: 256\tExpected: 1\n\n\t- Glyph name: uni0496\tContours detected: 603\tExpected: 1 or 2\n\n\t- Glyph name: uni0497\tContours detected: 467\tExpected: 1 or 2\n\n\t- Glyph name: uni0498\tContours detected: 320\tExpected: 1 or 2\n\n\t- Glyph name: uni0499\tContours detected: 166\tExpected: 1 or 2\n\n\t- Glyph name: uni049A\tContours detected: 368\tExpected: 1 or 2\n\n\t- Glyph name: uni049B\tContours detected: 403\tExpected: 1 or 2\n\n\t- Glyph name: uni049C\tContours detected: 322\tExpected: 1\n\n\t- Glyph name: uni049D\tContours detected: 209\tExpected: 1\n\n\t- Glyph name: uni04A0\tContours detected: 270\tExpected: 1\n\n\t- Glyph name: uni04A1\tContours detected: 243\tExpected: 1\n\n\t- Glyph name: uni04A2\tContours detected: 454\tExpected: 1 or 2\n\n\t- Glyph name: uni04A3\tContours detected: 323\tExpected: 1 or 2\n\n\t- Glyph name: uni04A4\tContours detected: 418\tExpected: 1\n\n\t- Glyph name: uni04A5\tContours detected: 293\tExpected: 1\n\n\t- Glyph name: uni04AA\tContours detected: 418\tExpected: 1 or 2\n\n\t- Glyph name: uni04AB\tContours detected: 244\tExpected: 1 or 2\n\n\t- Glyph name: Ustraitcy\tContours detected: 345\tExpected: 1\n\n\t- Glyph name: ustraitcy\tContours detected: 240\tExpected: 1\n\n\t- Glyph name: Ustraitstrokecy\tContours detected: 333\tExpected: 1\n\n\t- Glyph name: ustraitstrokecy\tContours detected: 256\tExpected: 1\n\n\t- Glyph name: uni04B6\tContours detected: 445\tExpected: 1 or 2\n\n\t- Glyph name: uni04B7\tContours detected: 347\tExpected: 1 or 2\n\n\t- Glyph name: uni04B8\tContours detected: 320\tExpected: 1\n\n\t- Glyph name: uni04B9\tContours detected: 211\tExpected: 1\n\n\t- Glyph name: uni04BA\tContours detected: 305\tExpected: 1\n\n\t- Glyph name: uni04BB\tContours detected: 353\tExpected: 1\n\n\t- Glyph name: uni04C0\tContours detected: 187\tExpected: 1\n\n\t- Glyph name: uni04C1\tContours detected: 794\tExpected: 2\n\n\t- Glyph name: uni04C2\tContours detected: 485\tExpected: 2\n\n\t- Glyph name: uni04CB\tContours detected: 365\tExpected: 1 or 2\n\n\t- Glyph name: uni04CC\tContours detected: 317\tExpected: 1 or 2\n\n\t- Glyph name: uni04CF\tContours detected: 248\tExpected: 1\n\n\t- Glyph name: uni04D0\tContours detected: 367\tExpected: 3\n\n\t- Glyph name: uni04D1\tContours detected: 260\tExpected: 3\n\n\t- Glyph name: uni04D2\tContours detected: 357\tExpected: 4\n\n\t- Glyph name: uni04D3\tContours detected: 234\tExpected: 4\n\n\t- Glyph name: uni04D4\tContours detected: 496\tExpected: 2\n\n\t- Glyph name: uni04D5\tContours detected: 307\tExpected: 3\n\n\t- Glyph name: uni04D6\tContours detected: 270\tExpected: 2\n\n\t- Glyph name: uni04D7\tContours detected: 229\tExpected: 3\n\n\t- Glyph name: uni04D8\tContours detected: 318\tExpected: 2\n\n\t- Glyph name: uni04D9\tContours detected: 290\tExpected: 2\n\n\t- Glyph name: uni04DC\tContours detected: 784\tExpected: 3\n\n\t- Glyph name: uni04DD\tContours detected: 459\tExpected: 3\n\n\t- Glyph name: uni04DE\tContours detected: 348\tExpected: 3\n\n\t- Glyph name: uni04DF\tContours detected: 181\tExpected: 3\n\n\t- Glyph name: uni04E2\tContours detected: 536\tExpected: 2\n\n\t- Glyph name: uni04E3\tContours detected: 327\tExpected: 2\n\n\t- Glyph name: uni04E4\tContours detected: 507\tExpected: 3\n\n\t- Glyph name: uni04E5\tContours detected: 298\tExpected: 3\n\n\t- Glyph name: uni04E6\tContours detected: 479\tExpected: 4\n\n\t- Glyph name: uni04E7\tContours detected: 255\tExpected: 4\n\n\t- Glyph name: uni04E8\tContours detected: 461\tExpected: 3\n\n\t- Glyph name: uni04E9\tContours detected: 250\tExpected: 3\n\n\t- Glyph name: uni04EE\tContours detected: 285\tExpected: 2\n\n\t- Glyph name: uni04EF\tContours detected: 386\tExpected: 2\n\n\t- Glyph name: uni04F0\tContours detected: 256\tExpected: 3\n\n\t- Glyph name: uni04F1\tContours detected: 357\tExpected: 3\n\n\t- Glyph name: uni04F2\tContours detected: 253\tExpected: 3\n\n\t- Glyph name: uni04F3\tContours detected: 354\tExpected: 3\n\n\t- Glyph name: uni04F4\tContours detected: 344\tExpected: 3\n\n\t- Glyph name: uni04F5\tContours detected: 303\tExpected: 3\n\n\t- Glyph name: uni04F6\tContours detected: 344\tExpected: 1 or 2\n\n\t- Glyph name: uni04F7\tContours detected: 214\tExpected: 1 or 2\n\n\t- Glyph name: uni04F8\tContours detected: 525\tExpected: 5\n\n\t- Glyph name: uni04F9\tContours detected: 278\tExpected: 5\n\n\t- Glyph name: uni051A\tContours detected: 431\tExpected: 2\n\n\t- Glyph name: uni051B\tContours detected: 397\tExpected: 2\n\n\t- Glyph name: uni051C\tContours detected: 547\tExpected: 1\n\n\t- Glyph name: uni051D\tContours detected: 233\tExpected: 1\n\n\t- Glyph name: uni0524\tContours detected: 355\tExpected: 1\n\n\t- Glyph name: uni0525\tContours detected: 311\tExpected: 1\n\n\t- Glyph name: Wgrave\tContours detected: 581\tExpected: 2\n\n\t- Glyph name: wgrave\tContours detected: 239\tExpected: 2\n\n\t- Glyph name: Wacute\tContours detected: 550\tExpected: 2\n\n\t- Glyph name: wacute\tContours detected: 244\tExpected: 2\n\n\t- Glyph name: Wdieresis\tContours detected: 564\tExpected: 3\n\n\t- Glyph name: wdieresis\tContours detected: 238\tExpected: 3\n\n\t- Glyph name: uni1E9E\tContours detected: 431\tExpected: 1\n\n\t- Glyph name: Ygrave\tContours detected: 295\tExpected: 2\n\n\t- Glyph name: ygrave\tContours detected: 296\tExpected: 2\n\n\t- Glyph name: endash\tContours detected: 53\tExpected: 1\n\n\t- Glyph name: emdash\tContours detected: 135\tExpected: 1\n\n\t- Glyph name: quoteleft\tContours detected: 75\tExpected: 1\n\n\t- Glyph name: quoteright\tContours detected: 27\tExpected: 1\n\n\t- Glyph name: quotesinglbase\tContours detected: 77\tExpected: 1\n\n\t- Glyph name: quotedblleft\tContours detected: 86\tExpected: 2\n\n\t- Glyph name: quotedblright\tContours detected: 136\tExpected: 2\n\n\t- Glyph name: quotedblbase\tContours detected: 120\tExpected: 2\n\n\t- Glyph name: dagger\tContours detected: 175\tExpected: 1 or 2\n\n\t- Glyph name: daggerdbl\tContours detected: 398\tExpected: 1 or 3\n\n\t- Glyph name: bullet\tContours detected: 89\tExpected: 1\n\n\t- Glyph name: ellipsis\tContours detected: 132\tExpected: 3\n\n\t- Glyph name: perthousand\tContours detected: 412\tExpected: 6 or 7\n\n\t- Glyph name: guilsinglleft\tContours detected: 70\tExpected: 1\n\n\t- Glyph name: guilsinglright\tContours detected: 56\tExpected: 1\n\n\t- Glyph name: fraction\tContours detected: 123\tExpected: 1\n\n\t- Glyph name: uni2070\tContours detected: 69\tExpected: 2 or 3\n\n\t- Glyph name: uni2074\tContours detected: 33\tExpected: 1 or 2\n\n\t- Glyph name: uni2075\tContours detected: 156\tExpected: 1\n\n\t- Glyph name: uni2076\tContours detected: 34\tExpected: 2\n\n\t- Glyph name: uni2077\tContours detected: 58\tExpected: 1\n\n\t- Glyph name: uni2078\tContours detected: 146\tExpected: 3\n\n\t- Glyph name: uni2079\tContours detected: 34\tExpected: 2\n\n\t- Glyph name: uni207D\tContours detected: 37\tExpected: 1\n\n\t- Glyph name: uni207E\tContours detected: 59\tExpected: 1\n\n\t- Glyph name: uni2080\tContours detected: 69\tExpected: 2 or 3\n\n\t- Glyph name: uni2081\tContours detected: 17\tExpected: 1\n\n\t- Glyph name: uni2082\tContours detected: 98\tExpected: 1\n\n\t- Glyph name: uni2083\tContours detected: 77\tExpected: 1\n\n\t- Glyph name: uni2084\tContours detected: 33\tExpected: 1 or 2\n\n\t- Glyph name: uni2085\tContours detected: 156\tExpected: 1\n\n\t- Glyph name: uni2086\tContours detected: 34\tExpected: 2\n\n\t- Glyph name: uni2087\tContours detected: 58\tExpected: 1\n\n\t- Glyph name: uni2088\tContours detected: 146\tExpected: 3\n\n\t- Glyph name: uni2089\tContours detected: 34\tExpected: 2\n\n\t- Glyph name: uni208D\tContours detected: 37\tExpected: 1\n\n\t- Glyph name: uni208E\tContours detected: 59\tExpected: 1\n\n\t- Glyph name: uni20AA\tContours detected: 506\tExpected: 2\n\n\t- Glyph name: Euro\tContours detected: 487\tExpected: 1 or 2\n\n\t- Glyph name: uni20AE\tContours detected: 213\tExpected: 1\n\n\t- Glyph name: uni20B4\tContours detected: 313\tExpected: 1 or 2\n\n\t- Glyph name: uni20B8\tContours detected: 222\tExpected: 2\n\n\t- Glyph name: uni20B9\tContours detected: 278\tExpected: 1\n\n\t- Glyph name: uni20BD\tContours detected: 433\tExpected: 2\n\n\t- Glyph name: uni2116\tContours detected: 545\tExpected: 3 or 4\n\n\t- Glyph name: trademark\tContours detected: 76\tExpected: 2\n\n\t- Glyph name: estimated\tContours detected: 314\tExpected: 2\n\n\t- Glyph name: uni2153\tContours detected: 217\tExpected: 3\n\n\t- Glyph name: uni2154\tContours detected: 298\tExpected: 1 or 3\n\n\t- Glyph name: oneeighth\tContours detected: 286\tExpected: 5\n\n\t- Glyph name: threeeighths\tContours detected: 346\tExpected: 5\n\n\t- Glyph name: fiveeighths\tContours detected: 425\tExpected: 5\n\n\t- Glyph name: seveneighths\tContours detected: 327\tExpected: 5\n\n\t- Glyph name: partialdiff\tContours detected: 306\tExpected: 2\n\n\t- Glyph name: uni2206\tContours detected: 275\tExpected: 2\n\n\t- Glyph name: product\tContours detected: 478\tExpected: 1\n\n\t- Glyph name: summation\tContours detected: 460\tExpected: 1\n\n\t- Glyph name: minus\tContours detected: 40\tExpected: 1\n\n\t- Glyph name: uni2215\tContours detected: 215\tExpected: 1\n\n\t- Glyph name: radical\tContours detected: 269\tExpected: 1\n\n\t- Glyph name: infinity\tContours detected: 260\tExpected: 3\n\n\t- Glyph name: integral\tContours detected: 206\tExpected: 1\n\n\t- Glyph name: approxequal\tContours detected: 140\tExpected: 2\n\n\t- Glyph name: notequal\tContours detected: 142\tExpected: 1\n\n\t- Glyph name: lessequal\tContours detected: 141\tExpected: 2\n\n\t- Glyph name: greaterequal\tContours detected: 155\tExpected: 2\n\n\t- Glyph name: lozenge\tContours detected: 328\tExpected: 2\n\n\t- Glyph name: fi\tContours detected: 364\tExpected: 1, 2 or 3\n\n\t- Glyph name: fl\tContours detected: 306\tExpected: 1 or 2\n\n\t- Glyph name: A\tContours detected: 352\tExpected: 2\n\n\t- Glyph name: AE\tContours detected: 496\tExpected: 2\n\n\t- Glyph name: AEacute\tContours detected: 499\tExpected: 3\n\n\t- Glyph name: Aacute\tContours detected: 355\tExpected: 3\n\n\t- Glyph name: Abreve\tContours detected: 387\tExpected: 3\n\n\t- Glyph name: Acircumflex\tContours detected: 372\tExpected: 3\n\n\t- Glyph name: Adieresis\tContours detected: 369\tExpected: 4\n\n\t- Glyph name: Agrave\tContours detected: 386\tExpected: 3\n\n\t- Glyph name: Amacron\tContours detected: 364\tExpected: 3\n\n\t- Glyph name: Aogonek\tContours detected: 574\tExpected: 2 or 3\n\n\t- Glyph name: Aring\tContours detected: 353\tExpected: 3 or 4\n\n\t- Glyph name: Atilde\tContours detected: 370\tExpected: 3\n\n\t- Glyph name: B\tContours detected: 301\tExpected: 2 or 3\n\n\t- Glyph name: C\tContours detected: 374\tExpected: 1\n\n\t- Glyph name: Cacute\tContours detected: 377\tExpected: 2\n\n\t- Glyph name: Ccaron\tContours detected: 387\tExpected: 2\n\n\t- Glyph name: Ccedilla\tContours detected: 466\tExpected: 1 or 2\n\n\t- Glyph name: Ccircumflex\tContours detected: 394\tExpected: 2\n\n\t- Glyph name: Cdotaccent\tContours detected: 392\tExpected: 2\n\n\t- Glyph name: D\tContours detected: 420\tExpected: 2\n\n\t- Glyph name: Dcaron\tContours detected: 433\tExpected: 3\n\n\t- Glyph name: Dcroat\tContours detected: 482\tExpected: 2\n\n\t- Glyph name: E\tContours detected: 255\tExpected: 1\n\n\t- Glyph name: Eacute\tContours detected: 258\tExpected: 2\n\n\t- Glyph name: Ebreve\tContours detected: 290\tExpected: 2\n\n\t- Glyph name: Ecaron\tContours detected: 268\tExpected: 2\n\n\t- Glyph name: Ecircumflex\tContours detected: 275\tExpected: 2\n\n\t- Glyph name: Edieresis\tContours detected: 272\tExpected: 3\n\n\t- Glyph name: Edotaccent\tContours detected: 273\tExpected: 2\n\n\t- Glyph name: Egrave\tContours detected: 289\tExpected: 2\n\n\t- Glyph name: Emacron\tContours detected: 267\tExpected: 2\n\n\t- Glyph name: Eng\tContours detected: 488\tExpected: 1\n\n\t- Glyph name: Eogonek\tContours detected: 255\tExpected: 1 or 2\n\n\t- Glyph name: Eth\tContours detected: 371\tExpected: 2\n\n\t- Glyph name: Euro\tContours detected: 487\tExpected: 1 or 2\n\n\t- Glyph name: F\tContours detected: 325\tExpected: 1\n\n\t- Glyph name: G\tContours detected: 394\tExpected: 1\n\n\t- Glyph name: Gbreve\tContours detected: 429\tExpected: 2\n\n\t- Glyph name: Gcircumflex\tContours detected: 414\tExpected: 2\n\n\t- Glyph name: Gdotaccent\tContours detected: 412\tExpected: 2\n\n\t- Glyph name: H\tContours detected: 525\tExpected: 1\n\n\t- Glyph name: Hbar\tContours detected: 499\tExpected: 2\n\n\t- Glyph name: Hcircumflex\tContours detected: 545\tExpected: 2\n\n\t- Glyph name: I\tContours detected: 187\tExpected: 1\n\n\t- Glyph name: IJ\tContours detected: 419\tExpected: 1 or 2\n\n\t- Glyph name: Iacute\tContours detected: 190\tExpected: 2\n\n\t- Glyph name: Ibreve\tContours detected: 222\tExpected: 2\n\n\t- Glyph name: Icircumflex\tContours detected: 207\tExpected: 2\n\n\t- Glyph name: Idieresis\tContours detected: 204\tExpected: 3\n\n\t- Glyph name: Idotaccent\tContours detected: 205\tExpected: 2\n\n\t- Glyph name: Igrave\tContours detected: 221\tExpected: 2\n\n\t- Glyph name: Imacron\tContours detected: 199\tExpected: 2\n\n\t- Glyph name: Iogonek\tContours detected: 280\tExpected: 1 or 2\n\n\t- Glyph name: Itilde\tContours detected: 205\tExpected: 2\n\n\t- Glyph name: J\tContours detected: 336\tExpected: 1\n\n\t- Glyph name: Jcircumflex\tContours detected: 356\tExpected: 2\n\n\t- Glyph name: K\tContours detected: 450\tExpected: 1 or 2\n\n\t- Glyph name: L\tContours detected: 286\tExpected: 1\n\n\t- Glyph name: Lacute\tContours detected: 289\tExpected: 2\n\n\t- Glyph name: Lcaron\tContours detected: 299\tExpected: 2\n\n\t- Glyph name: Ldot\tContours detected: 287\tExpected: 2\n\n\t- Glyph name: Lslash\tContours detected: 258\tExpected: 1\n\n\t- Glyph name: M\tContours detected: 228\tExpected: 1\n\n\t- Glyph name: N\tContours detected: 418\tExpected: 1\n\n\t- Glyph name: Nacute\tContours detected: 421\tExpected: 2\n\n\t- Glyph name: Ncaron\tContours detected: 431\tExpected: 2\n\n\t- Glyph name: Ntilde\tContours detected: 436\tExpected: 2\n\n\t- Glyph name: O\tContours detected: 474\tExpected: 2\n\n\t- Glyph name: OE\tContours detected: 546\tExpected: 2\n\n\t- Glyph name: Oacute\tContours detected: 477\tExpected: 3\n\n\t- Glyph name: Ocircumflex\tContours detected: 494\tExpected: 3\n\n\t- Glyph name: Odieresis\tContours detected: 491\tExpected: 4\n\n\t- Glyph name: Ograve\tContours detected: 508\tExpected: 3\n\n\t- Glyph name: Ohungarumlaut\tContours detected: 521\tExpected: 4\n\n\t- Glyph name: Omacron\tContours detected: 486\tExpected: 3\n\n\t- Glyph name: Oslash\tContours detected: 568\tExpected: 2 or 3\n\n\t- Glyph name: Oslashacute\tContours detected: 571\tExpected: 4\n\n\t- Glyph name: Otilde\tContours detected: 492\tExpected: 3\n\n\t- Glyph name: P\tContours detected: 283\tExpected: 1 or 2\n\n\t- Glyph name: Q\tContours detected: 431\tExpected: 2\n\n\t- Glyph name: R\tContours detected: 457\tExpected: 1 or 2\n\n\t- Glyph name: Racute\tContours detected: 460\tExpected: 3\n\n\t- Glyph name: Rcaron\tContours detected: 470\tExpected: 3\n\n\t- Glyph name: S\tContours detected: 217\tExpected: 1\n\n\t- Glyph name: Sacute\tContours detected: 220\tExpected: 2\n\n\t- Glyph name: Scaron\tContours detected: 230\tExpected: 2\n\n\t- Glyph name: Scircumflex\tContours detected: 237\tExpected: 2\n\n\t- Glyph name: T\tContours detected: 255\tExpected: 1\n\n\t- Glyph name: Tbar\tContours detected: 291\tExpected: 1\n\n\t- Glyph name: Tcaron\tContours detected: 268\tExpected: 2\n\n\t- Glyph name: Thorn\tContours detected: 363\tExpected: 1 or 2\n\n\t- Glyph name: U\tContours detected: 366\tExpected: 1\n\n\t- Glyph name: Uacute\tContours detected: 369\tExpected: 2\n\n\t- Glyph name: Ubreve\tContours detected: 401\tExpected: 2\n\n\t- Glyph name: Ucircumflex\tContours detected: 386\tExpected: 2\n\n\t- Glyph name: Udieresis\tContours detected: 383\tExpected: 3\n\n\t- Glyph name: Ugrave\tContours detected: 400\tExpected: 2\n\n\t- Glyph name: Uhungarumlaut\tContours detected: 413\tExpected: 3\n\n\t- Glyph name: Umacron\tContours detected: 378\tExpected: 2\n\n\t- Glyph name: Uogonek\tContours detected: 473\tExpected: 1\n\n\t- Glyph name: Uring\tContours detected: 367\tExpected: 3\n\n\t- Glyph name: Utilde\tContours detected: 384\tExpected: 2\n\n\t- Glyph name: V\tContours detected: 290\tExpected: 1\n\n\t- Glyph name: W\tContours detected: 547\tExpected: 1 or 2\n\n\t- Glyph name: Wacute\tContours detected: 550\tExpected: 2\n\n\t- Glyph name: Wcircumflex\tContours detected: 567\tExpected: 2\n\n\t- Glyph name: Wdieresis\tContours detected: 564\tExpected: 3\n\n\t- Glyph name: Wgrave\tContours detected: 581\tExpected: 2\n\n\t- Glyph name: X\tContours detected: 356\tExpected: 1\n\n\t- Glyph name: Y\tContours detected: 261\tExpected: 1\n\n\t- Glyph name: Yacute\tContours detected: 264\tExpected: 2\n\n\t- Glyph name: Ycircumflex\tContours detected: 281\tExpected: 2\n\n\t- Glyph name: Ydieresis\tContours detected: 278\tExpected: 3\n\n\t- Glyph name: Ygrave\tContours detected: 295\tExpected: 2\n\n\t- Glyph name: Z\tContours detected: 408\tExpected: 1\n\n\t- Glyph name: Zacute\tContours detected: 411\tExpected: 2\n\n\t- Glyph name: Zcaron\tContours detected: 421\tExpected: 2\n\n\t- Glyph name: Zdotaccent\tContours detected: 426\tExpected: 2\n\n\t- Glyph name: a\tContours detected: 229\tExpected: 2\n\n\t- Glyph name: aacute\tContours detected: 240\tExpected: 3\n\n\t- Glyph name: abreve\tContours detected: 243\tExpected: 3\n\n\t- Glyph name: acircumflex\tContours detected: 254\tExpected: 3\n\n\t- Glyph name: acute\tContours detected: 11\tExpected: 1\n\n\t- Glyph name: adieresis\tContours detected: 234\tExpected: 4\n\n\t- Glyph name: ae\tContours detected: 307\tExpected: 3\n\n\t- Glyph name: aeacute\tContours detected: 318\tExpected: 4\n\n\t- Glyph name: agrave\tContours detected: 235\tExpected: 3\n\n\t- Glyph name: amacron\tContours detected: 263\tExpected: 3\n\n\t- Glyph name: ampersand\tContours detected: 280\tExpected: 1, 2 or 3\n\n\t- Glyph name: aogonek\tContours detected: 265\tExpected: 2\n\n\t- Glyph name: approxequal\tContours detected: 140\tExpected: 2\n\n\t- Glyph name: aring\tContours detected: 230\tExpected: 4\n\n\t- Glyph name: asciicircum\tContours detected: 16\tExpected: 1\n\n\t- Glyph name: asciitilde\tContours detected: 100\tExpected: 1\n\n\t- Glyph name: asterisk\tContours detected: 145\tExpected: 1 or 4\n\n\t- Glyph name: at\tContours detected: 212\tExpected: 2\n\n\t- Glyph name: atilde\tContours detected: 251\tExpected: 3\n\n\t- Glyph name: b\tContours detected: 345\tExpected: 2\n\n\t- Glyph name: backslash\tContours detected: 134\tExpected: 1\n\n\t- Glyph name: bar\tContours detected: 235\tExpected: 1\n\n\t- Glyph name: braceleft\tContours detected: 250\tExpected: 1\n\n\t- Glyph name: braceright\tContours detected: 272\tExpected: 1\n\n\t- Glyph name: bracketleft\tContours detected: 339\tExpected: 1\n\n\t- Glyph name: bracketright\tContours detected: 240\tExpected: 1\n\n\t- Glyph name: breve\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: brokenbar\tContours detected: 154\tExpected: 2\n\n\t- Glyph name: bullet\tContours detected: 89\tExpected: 1\n\n\t- Glyph name: c\tContours detected: 239\tExpected: 1\n\n\t- Glyph name: cacute\tContours detected: 250\tExpected: 2\n\n\t- Glyph name: caron\tContours detected: 17\tExpected: 1\n\n\t- Glyph name: ccaron\tContours detected: 256\tExpected: 2\n\n\t- Glyph name: ccedilla\tContours detected: 237\tExpected: 1 or 2\n\n\t- Glyph name: ccircumflex\tContours detected: 264\tExpected: 2\n\n\t- Glyph name: cdotaccent\tContours detected: 240\tExpected: 2\n\n\t- Glyph name: cedilla\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: cent\tContours detected: 278\tExpected: 1 or 2\n\n\t- Glyph name: circumflex\tContours detected: 25\tExpected: 1\n\n\t- Glyph name: colon\tContours detected: 107\tExpected: 2\n\n\t- Glyph name: comma\tContours detected: 80\tExpected: 1\n\n\t- Glyph name: copyright\tContours detected: 254\tExpected: 3\n\n\t- Glyph name: currency\tContours detected: 167\tExpected: 2\n\n\t- Glyph name: d\tContours detected: 465\tExpected: 2\n\n\t- Glyph name: dagger\tContours detected: 175\tExpected: 1 or 2\n\n\t- Glyph name: daggerdbl\tContours detected: 398\tExpected: 1 or 3\n\n\t- Glyph name: dcaron\tContours detected: 478\tExpected: 3\n\n\t- Glyph name: dcroat\tContours detected: 295\tExpected: 2\n\n\t- Glyph name: degree\tContours detected: 79\tExpected: 2\n\n\t- Glyph name: dieresis\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: divide\tContours detected: 188\tExpected: 3\n\n\t- Glyph name: dollar\tContours detected: 474\tExpected: 1, 3 or 5\n\n\t- Glyph name: dotlessi\tContours detected: 96\tExpected: 1\n\n\t- Glyph name: e\tContours detected: 198\tExpected: 2\n\n\t- Glyph name: eacute\tContours detected: 209\tExpected: 3\n\n\t- Glyph name: ebreve\tContours detected: 212\tExpected: 3\n\n\t- Glyph name: ecaron\tContours detected: 215\tExpected: 3\n\n\t- Glyph name: ecircumflex\tContours detected: 223\tExpected: 3\n\n\t- Glyph name: edieresis\tContours detected: 203\tExpected: 4\n\n\t- Glyph name: edotaccent\tContours detected: 199\tExpected: 3\n\n\t- Glyph name: egrave\tContours detected: 204\tExpected: 3\n\n\t- Glyph name: eight\tContours detected: 452\tExpected: 3\n\n\t- Glyph name: ellipsis\tContours detected: 132\tExpected: 3\n\n\t- Glyph name: emacron\tContours detected: 232\tExpected: 3\n\n\t- Glyph name: emdash\tContours detected: 135\tExpected: 1\n\n\t- Glyph name: endash\tContours detected: 53\tExpected: 1\n\n\t- Glyph name: eng\tContours detected: 420\tExpected: 1\n\n\t- Glyph name: eogonek\tContours detected: 237\tExpected: 2\n\n\t- Glyph name: equal\tContours detected: 119\tExpected: 2\n\n\t- Glyph name: estimated\tContours detected: 314\tExpected: 2\n\n\t- Glyph name: eth\tContours detected: 312\tExpected: 2\n\n\t- Glyph name: exclam\tContours detected: 164\tExpected: 2\n\n\t- Glyph name: exclamdown\tContours detected: 148\tExpected: 2\n\n\t- Glyph name: f\tContours detected: 307\tExpected: 1\n\n\t- Glyph name: fi\tContours detected: 364\tExpected: 3\n\n\t- Glyph name: five\tContours detected: 406\tExpected: 1\n\n\t- Glyph name: fiveeighths\tContours detected: 425\tExpected: 5\n\n\t- Glyph name: fl\tContours detected: 306\tExpected: 2\n\n\t- Glyph name: four\tContours detected: 344\tExpected: 1 or 2\n\n\t- Glyph name: fraction\tContours detected: 123\tExpected: 1\n\n\t- Glyph name: g\tContours detected: 331\tExpected: 2 or 3\n\n\t- Glyph name: gbreve\tContours detected: 345\tExpected: 3 or 4\n\n\t- Glyph name: gcircumflex\tContours detected: 356\tExpected: 3 or 4\n\n\t- Glyph name: gdotaccent\tContours detected: 332\tExpected: 3 or 4\n\n\t- Glyph name: germandbls\tContours detected: 307\tExpected: 1\n\n\t- Glyph name: grave\tContours detected: 6\tExpected: 1\n\n\t- Glyph name: greater\tContours detected: 120\tExpected: 1\n\n\t- Glyph name: greaterequal\tContours detected: 155\tExpected: 2\n\n\t- Glyph name: guillemotleft\tContours detected: 203\tExpected: 2\n\n\t- Glyph name: guillemotright\tContours detected: 228\tExpected: 2\n\n\t- Glyph name: guilsinglleft\tContours detected: 70\tExpected: 1\n\n\t- Glyph name: guilsinglright\tContours detected: 56\tExpected: 1\n\n\t- Glyph name: h\tContours detected: 353\tExpected: 1\n\n\t- Glyph name: hbar\tContours detected: 336\tExpected: 1\n\n\t- Glyph name: hcircumflex\tContours detected: 378\tExpected: 2\n\n\t- Glyph name: hyphen\tContours detected: 70\tExpected: 1\n\n\t- Glyph name: i\tContours detected: 116\tExpected: 2\n\n\t- Glyph name: iacute\tContours detected: 107\tExpected: 2\n\n\t- Glyph name: ibreve\tContours detected: 110\tExpected: 2\n\n\t- Glyph name: icircumflex\tContours detected: 121\tExpected: 2\n\n\t- Glyph name: idieresis\tContours detected: 101\tExpected: 3\n\n\t- Glyph name: igrave\tContours detected: 102\tExpected: 2\n\n\t- Glyph name: ij\tContours detected: 324\tExpected: 3 or 4\n\n\t- Glyph name: imacron\tContours detected: 130\tExpected: 2\n\n\t- Glyph name: infinity\tContours detected: 260\tExpected: 3\n\n\t- Glyph name: integral\tContours detected: 206\tExpected: 1\n\n\t- Glyph name: iogonek\tContours detected: 167\tExpected: 2 or 3\n\n\t- Glyph name: itilde\tContours detected: 118\tExpected: 2\n\n\t- Glyph name: j\tContours detected: 208\tExpected: 2\n\n\t- Glyph name: jcircumflex\tContours detected: 195\tExpected: 2\n\n\t- Glyph name: k\tContours detected: 298\tExpected: 1 or 2\n\n\t- Glyph name: kgreenlandic\tContours detected: 296\tExpected: 1 or 2\n\n\t- Glyph name: l\tContours detected: 248\tExpected: 1\n\n\t- Glyph name: lacute\tContours detected: 259\tExpected: 2\n\n\t- Glyph name: lcaron\tContours detected: 261\tExpected: 2\n\n\t- Glyph name: ldot\tContours detected: 249\tExpected: 2\n\n\t- Glyph name: less\tContours detected: 183\tExpected: 1\n\n\t- Glyph name: lessequal\tContours detected: 141\tExpected: 2\n\n\t- Glyph name: logicalnot\tContours detected: 62\tExpected: 1\n\n\t- Glyph name: longs\tContours detected: 142\tExpected: 1\n\n\t- Glyph name: lozenge\tContours detected: 328\tExpected: 2\n\n\t- Glyph name: lslash\tContours detected: 229\tExpected: 1\n\n\t- Glyph name: m\tContours detected: 289\tExpected: 1\n\n\t- Glyph name: macron\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: minus\tContours detected: 40\tExpected: 1\n\n\t- Glyph name: multiply\tContours detected: 158\tExpected: 1\n\n\t- Glyph name: n\tContours detected: 257\tExpected: 1\n\n\t- Glyph name: nacute\tContours detected: 268\tExpected: 2\n\n\t- Glyph name: napostrophe\tContours detected: 277\tExpected: 2\n\n\t- Glyph name: ncaron\tContours detected: 274\tExpected: 2\n\n\t- Glyph name: nine\tContours detected: 316\tExpected: 1 or 2\n\n\t- Glyph name: notequal\tContours detected: 142\tExpected: 1\n\n\t- Glyph name: ntilde\tContours detected: 279\tExpected: 2\n\n\t- Glyph name: numbersign\tContours detected: 256\tExpected: 2\n\n\t- Glyph name: o\tContours detected: 250\tExpected: 2\n\n\t- Glyph name: oacute\tContours detected: 261\tExpected: 3\n\n\t- Glyph name: ocircumflex\tContours detected: 275\tExpected: 3\n\n\t- Glyph name: odieresis\tContours detected: 255\tExpected: 4\n\n\t- Glyph name: oe\tContours detected: 431\tExpected: 3\n\n\t- Glyph name: ogonek\tContours detected: 81\tExpected: 1\n\n\t- Glyph name: ograve\tContours detected: 256\tExpected: 3\n\n\t- Glyph name: ohungarumlaut\tContours detected: 252\tExpected: 4\n\n\t- Glyph name: omacron\tContours detected: 284\tExpected: 3\n\n\t- Glyph name: one\tContours detected: 277\tExpected: 1\n\n\t- Glyph name: oneeighth\tContours detected: 286\tExpected: 5\n\n\t- Glyph name: onehalf\tContours detected: 238\tExpected: 3\n\n\t- Glyph name: onequarter\tContours detected: 173\tExpected: 3 or 4\n\n\t- Glyph name: ordfeminine\tContours detected: 63\tExpected: 2 or 3\n\n\t- Glyph name: ordmasculine\tContours detected: 27\tExpected: 2 or 3\n\n\t- Glyph name: oslash\tContours detected: 303\tExpected: 3\n\n\t- Glyph name: oslashacute\tContours detected: 314\tExpected: 4\n\n\t- Glyph name: otilde\tContours detected: 272\tExpected: 3\n\n\t- Glyph name: p\tContours detected: 338\tExpected: 2\n\n\t- Glyph name: paragraph\tContours detected: 264\tExpected: 1, 2 or 3\n\n\t- Glyph name: parenleft\tContours detected: 262\tExpected: 1\n\n\t- Glyph name: parenright\tContours detected: 205\tExpected: 1\n\n\t- Glyph name: partialdiff\tContours detected: 306\tExpected: 2\n\n\t- Glyph name: percent\tContours detected: 336\tExpected: 5\n\n\t- Glyph name: period\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: periodcentered\tContours detected: 78\tExpected: 1\n\n\t- Glyph name: perthousand\tContours detected: 412\tExpected: 6 or 7\n\n\t- Glyph name: plus\tContours detected: 183\tExpected: 1\n\n\t- Glyph name: plusminus\tContours detected: 245\tExpected: 1 or 2\n\n\t- Glyph name: product\tContours detected: 478\tExpected: 1\n\n\t- Glyph name: q\tContours detected: 397\tExpected: 2\n\n\t- Glyph name: question\tContours detected: 285\tExpected: 2\n\n\t- Glyph name: questiondown\tContours detected: 214\tExpected: 2\n\n\t- Glyph name: quotedbl\tContours detected: 34\tExpected: 2\n\n\t- Glyph name: quotedblbase\tContours detected: 120\tExpected: 2\n\n\t- Glyph name: quotedblleft\tContours detected: 86\tExpected: 2\n\n\t- Glyph name: quotedblright\tContours detected: 136\tExpected: 2\n\n\t- Glyph name: quoteleft\tContours detected: 75\tExpected: 1\n\n\t- Glyph name: quoteright\tContours detected: 27\tExpected: 1\n\n\t- Glyph name: quotesinglbase\tContours detected: 77\tExpected: 1\n\n\t- Glyph name: quotesingle\tContours detected: 27\tExpected: 1\n\n\t- Glyph name: r\tContours detected: 200\tExpected: 1\n\n\t- Glyph name: racute\tContours detected: 211\tExpected: 2\n\n\t- Glyph name: radical\tContours detected: 269\tExpected: 1\n\n\t- Glyph name: rcaron\tContours detected: 217\tExpected: 2\n\n\t- Glyph name: registered\tContours detected: 315\tExpected: 3 or 4\n\n\t- Glyph name: ring\tContours detected: 1\tExpected: 2\n\n\t- Glyph name: s\tContours detected: 162\tExpected: 1\n\n\t- Glyph name: sacute\tContours detected: 173\tExpected: 2\n\n\t- Glyph name: scaron\tContours detected: 179\tExpected: 2\n\n\t- Glyph name: scircumflex\tContours detected: 187\tExpected: 2\n\n\t- Glyph name: section\tContours detected: 505\tExpected: 2\n\n\t- Glyph name: semicolon\tContours detected: 154\tExpected: 2\n\n\t- Glyph name: seven\tContours detected: 291\tExpected: 1\n\n\t- Glyph name: seveneighths\tContours detected: 327\tExpected: 5\n\n\t- Glyph name: six\tContours detected: 407\tExpected: 1 or 2\n\n\t- Glyph name: slash\tContours detected: 215\tExpected: 1\n\n\t- Glyph name: sterling\tContours detected: 317\tExpected: 1 or 2\n\n\t- Glyph name: summation\tContours detected: 460\tExpected: 1\n\n\t- Glyph name: t\tContours detected: 207\tExpected: 1\n\n\t- Glyph name: tbar\tContours detected: 196\tExpected: 1\n\n\t- Glyph name: tcaron\tContours detected: 220\tExpected: 2\n\n\t- Glyph name: thorn\tContours detected: 494\tExpected: 2\n\n\t- Glyph name: three\tContours detected: 411\tExpected: 1\n\n\t- Glyph name: threeeighths\tContours detected: 346\tExpected: 5\n\n\t- Glyph name: threequarters\tContours detected: 233\tExpected: 3 or 4\n\n\t- Glyph name: tilde\tContours detected: 22\tExpected: 1\n\n\t- Glyph name: trademark\tContours detected: 76\tExpected: 2\n\n\t- Glyph name: two\tContours detected: 371\tExpected: 1\n\n\t- Glyph name: u\tContours detected: 362\tExpected: 1\n\n\t- Glyph name: uacute\tContours detected: 373\tExpected: 2\n\n\t- Glyph name: ubreve\tContours detected: 376\tExpected: 2\n\n\t- Glyph name: ucircumflex\tContours detected: 387\tExpected: 2\n\n\t- Glyph name: udieresis\tContours detected: 367\tExpected: 3\n\n\t- Glyph name: ugrave\tContours detected: 368\tExpected: 2\n\n\t- Glyph name: uhungarumlaut\tContours detected: 364\tExpected: 3\n\n\t- Glyph name: umacron\tContours detected: 396\tExpected: 2\n\n\t- Glyph name: underscore\tContours detected: 66\tExpected: 1\n\n\t- Glyph name: uni00AD\tContours detected: 70\tExpected: 0\n\n\t- Glyph name: uni00B5\tContours detected: 373\tExpected: 1\n\n\t- Glyph name: uni0122\tContours detected: 415\tExpected: 2\n\n\t- Glyph name: uni0123\tContours detected: 351\tExpected: 3 or 4\n\n\t- Glyph name: uni0136\tContours detected: 471\tExpected: 2 or 3\n\n\t- Glyph name: uni0137\tContours detected: 318\tExpected: 2 or 3\n\n\t- Glyph name: uni013B\tContours detected: 307\tExpected: 2\n\n\t- Glyph name: uni013C\tContours detected: 268\tExpected: 2\n\n\t- Glyph name: uni0145\tContours detected: 439\tExpected: 2\n\n\t- Glyph name: uni0146\tContours detected: 277\tExpected: 2\n\n\t- Glyph name: uni0156\tContours detected: 478\tExpected: 3\n\n\t- Glyph name: uni0157\tContours detected: 220\tExpected: 2\n\n\t- Glyph name: uni0218\tContours detected: 238\tExpected: 2\n\n\t- Glyph name: uni0219\tContours detected: 182\tExpected: 2\n\n\t- Glyph name: uni021A\tContours detected: 276\tExpected: 2\n\n\t- Glyph name: uni021B\tContours detected: 227\tExpected: 2\n\n\t- Glyph name: uni0237\tContours detected: 170\tExpected: 1\n\n\t- Glyph name: uni02BC\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: uni0302\tContours detected: 25\tExpected: 1\n\n\t- Glyph name: uni0304\tContours detected: 34\tExpected: 1\n\n\t- Glyph name: uni0306\tContours detected: 14\tExpected: 1\n\n\t- Glyph name: uni0308\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni030A\tContours detected: 1\tExpected: 2\n\n\t- Glyph name: uni030C\tContours detected: 17\tExpected: 1\n\n\t- Glyph name: uni0312\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: uni0326\tContours detected: 20\tExpected: 1\n\n\t- Glyph name: uni0327\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0328\tContours detected: 81\tExpected: 1\n\n\t- Glyph name: uni0335\tContours detected: 16\tExpected: 1\n\n\t- Glyph name: uni0337\tContours detected: 53\tExpected: 1\n\n\t- Glyph name: uni0338\tContours detected: 94\tExpected: 1\n\n\t- Glyph name: uni0400\tContours detected: 289\tExpected: 2\n\n\t- Glyph name: uni0401\tContours detected: 260\tExpected: 3\n\n\t- Glyph name: uni0402\tContours detected: 286\tExpected: 1\n\n\t- Glyph name: uni0403\tContours detected: 236\tExpected: 2\n\n\t- Glyph name: uni0404\tContours detected: 400\tExpected: 1\n\n\t- Glyph name: uni0405\tContours detected: 217\tExpected: 1\n\n\t- Glyph name: uni0406\tContours detected: 187\tExpected: 1\n\n\t- Glyph name: uni0407\tContours detected: 192\tExpected: 3\n\n\t- Glyph name: uni0408\tContours detected: 336\tExpected: 1\n\n\t- Glyph name: uni0409\tContours detected: 612\tExpected: 2\n\n\t- Glyph name: uni040A\tContours detected: 492\tExpected: 2\n\n\t- Glyph name: uni040B\tContours detected: 368\tExpected: 1\n\n\t- Glyph name: uni040C\tContours detected: 345\tExpected: 2\n\n\t- Glyph name: uni040D\tContours detected: 536\tExpected: 2\n\n\t- Glyph name: uni040E\tContours detected: 266\tExpected: 2\n\n\t- Glyph name: uni040F\tContours detected: 411\tExpected: 1\n\n\t- Glyph name: uni0410\tContours detected: 352\tExpected: 2\n\n\t- Glyph name: uni0411\tContours detected: 471\tExpected: 2\n\n\t- Glyph name: uni0412\tContours detected: 301\tExpected: 3\n\n\t- Glyph name: uni0413\tContours detected: 233\tExpected: 1\n\n\t- Glyph name: uni0414\tContours detected: 334\tExpected: 2\n\n\t- Glyph name: uni0415\tContours detected: 255\tExpected: 1\n\n\t- Glyph name: uni0416\tContours detected: 779\tExpected: 1\n\n\t- Glyph name: uni0417\tContours detected: 343\tExpected: 1\n\n\t- Glyph name: uni0418\tContours detected: 502\tExpected: 1\n\n\t- Glyph name: uni0419\tContours detected: 517\tExpected: 2\n\n\t- Glyph name: uni041A\tContours detected: 342\tExpected: 1\n\n\t- Glyph name: uni041B\tContours detected: 429\tExpected: 1\n\n\t- Glyph name: uni041C\tContours detected: 228\tExpected: 1\n\n\t- Glyph name: uni041D\tContours detected: 525\tExpected: 1\n\n\t- Glyph name: uni041E\tContours detected: 474\tExpected: 2\n\n\t- Glyph name: uni041F\tContours detected: 443\tExpected: 1\n\n\t- Glyph name: uni0420\tContours detected: 283\tExpected: 1 or 2\n\n\t- Glyph name: uni0421\tContours detected: 374\tExpected: 1\n\n\t- Glyph name: uni0422\tContours detected: 255\tExpected: 1\n\n\t- Glyph name: uni0423\tContours detected: 251\tExpected: 1\n\n\t- Glyph name: uni0424\tContours detected: 595\tExpected: 3\n\n\t- Glyph name: uni0425\tContours detected: 356\tExpected: 1\n\n\t- Glyph name: uni0426\tContours detected: 451\tExpected: 1\n\n\t- Glyph name: uni0427\tContours detected: 339\tExpected: 1\n\n\t- Glyph name: uni0428\tContours detected: 640\tExpected: 1\n\n\t- Glyph name: uni0429\tContours detected: 459\tExpected: 1\n\n\t- Glyph name: uni042A\tContours detected: 455\tExpected: 2\n\n\t- Glyph name: uni042B\tContours detected: 520\tExpected: 3\n\n\t- Glyph name: uni042C\tContours detected: 231\tExpected: 2\n\n\t- Glyph name: uni042D\tContours detected: 335\tExpected: 1\n\n\t- Glyph name: uni042E\tContours detected: 585\tExpected: 2\n\n\t- Glyph name: uni042F\tContours detected: 435\tExpected: 2\n\n\t- Glyph name: uni0430\tContours detected: 229\tExpected: 2\n\n\t- Glyph name: uni0431\tContours detected: 262\tExpected: 2\n\n\t- Glyph name: uni0432\tContours detected: 349\tExpected: 3\n\n\t- Glyph name: uni0433\tContours detected: 91\tExpected: 1\n\n\t- Glyph name: uni0434\tContours detected: 433\tExpected: 2\n\n\t- Glyph name: uni0435\tContours detected: 198\tExpected: 2\n\n\t- Glyph name: uni0436\tContours detected: 454\tExpected: 1\n\n\t- Glyph name: uni0437\tContours detected: 176\tExpected: 1\n\n\t- Glyph name: uni0438\tContours detected: 293\tExpected: 1\n\n\t- Glyph name: uni0439\tContours detected: 324\tExpected: 2\n\n\t- Glyph name: uni043A\tContours detected: 278\tExpected: 1\n\n\t- Glyph name: uni043B\tContours detected: 276\tExpected: 1\n\n\t- Glyph name: uni043C\tContours detected: 309\tExpected: 1\n\n\t- Glyph name: uni043D\tContours detected: 222\tExpected: 1\n\n\t- Glyph name: uni043E\tContours detected: 250\tExpected: 2\n\n\t- Glyph name: uni043F\tContours detected: 188\tExpected: 1\n\n\t- Glyph name: uni0440\tContours detected: 338\tExpected: 2\n\n\t- Glyph name: uni0441\tContours detected: 239\tExpected: 1\n\n\t- Glyph name: uni0442\tContours detected: 159\tExpected: 1\n\n\t- Glyph name: uni0443\tContours detected: 352\tExpected: 1\n\n\t- Glyph name: uni0444\tContours detected: 434\tExpected: 3\n\n\t- Glyph name: uni0445\tContours detected: 207\tExpected: 1\n\n\t- Glyph name: uni0446\tContours detected: 338\tExpected: 1\n\n\t- Glyph name: uni0447\tContours detected: 298\tExpected: 1\n\n\t- Glyph name: uni0448\tContours detected: 302\tExpected: 1\n\n\t- Glyph name: uni0449\tContours detected: 384\tExpected: 1\n\n\t- Glyph name: uni044A\tContours detected: 237\tExpected: 2\n\n\t- Glyph name: uni044B\tContours detected: 273\tExpected: 3\n\n\t- Glyph name: uni044C\tContours detected: 222\tExpected: 2\n\n\t- Glyph name: uni044D\tContours detected: 141\tExpected: 1\n\n\t- Glyph name: uni044E\tContours detected: 354\tExpected: 2\n\n\t- Glyph name: uni044F\tContours detected: 230\tExpected: 2\n\n\t- Glyph name: uni0450\tContours detected: 204\tExpected: 3\n\n\t- Glyph name: uni0451\tContours detected: 203\tExpected: 4\n\n\t- Glyph name: uni0452\tContours detected: 463\tExpected: 1\n\n\t- Glyph name: uni0453\tContours detected: 102\tExpected: 2\n\n\t- Glyph name: uni0454\tContours detected: 221\tExpected: 1\n\n\t- Glyph name: uni0455\tContours detected: 162\tExpected: 1\n\n\t- Glyph name: uni0456\tContours detected: 116\tExpected: 2\n\n\t- Glyph name: uni0457\tContours detected: 101\tExpected: 3\n\n\t- Glyph name: uni0458\tContours detected: 208\tExpected: 2\n\n\t- Glyph name: uni0459\tContours detected: 272\tExpected: 2\n\n\t- Glyph name: uni045A\tContours detected: 270\tExpected: 2\n\n\t- Glyph name: uni045B\tContours detected: 438\tExpected: 1\n\n\t- Glyph name: uni045C\tContours detected: 289\tExpected: 2\n\n\t- Glyph name: uni045D\tContours detected: 299\tExpected: 2\n\n\t- Glyph name: uni045E\tContours detected: 383\tExpected: 2\n\n\t- Glyph name: uni045F\tContours detected: 349\tExpected: 1 or 2\n\n\t- Glyph name: uni0462\tContours detected: 250\tExpected: 2\n\n\t- Glyph name: uni0463\tContours detected: 288\tExpected: 2\n\n\t- Glyph name: uni046A\tContours detected: 584\tExpected: 2\n\n\t- Glyph name: uni046B\tContours detected: 301\tExpected: 2\n\n\t- Glyph name: uni0472\tContours detected: 478\tExpected: 3\n\n\t- Glyph name: uni0473\tContours detected: 250\tExpected: 3\n\n\t- Glyph name: uni0474\tContours detected: 332\tExpected: 1\n\n\t- Glyph name: uni0475\tContours detected: 246\tExpected: 1\n\n\t- Glyph name: uni0490\tContours detected: 409\tExpected: 1\n\n\t- Glyph name: uni0491\tContours detected: 157\tExpected: 1\n\n\t- Glyph name: uni0492\tContours detected: 210\tExpected: 1\n\n\t- Glyph name: uni0493\tContours detected: 107\tExpected: 1\n\n\t- Glyph name: uni0494\tContours detected: 338\tExpected: 1\n\n\t- Glyph name: uni0495\tContours detected: 256\tExpected: 1\n\n\t- Glyph name: uni0496\tContours detected: 603\tExpected: 1 or 2\n\n\t- Glyph name: uni0497\tContours detected: 467\tExpected: 1 or 2\n\n\t- Glyph name: uni0498\tContours detected: 320\tExpected: 1 or 2\n\n\t- Glyph name: uni0499\tContours detected: 166\tExpected: 1 or 2\n\n\t- Glyph name: uni049A\tContours detected: 368\tExpected: 1 or 2\n\n\t- Glyph name: uni049B\tContours detected: 403\tExpected: 1 or 2\n\n\t- Glyph name: uni049C\tContours detected: 322\tExpected: 1\n\n\t- Glyph name: uni049D\tContours detected: 209\tExpected: 1\n\n\t- Glyph name: uni04A0\tContours detected: 270\tExpected: 1\n\n\t- Glyph name: uni04A1\tContours detected: 243\tExpected: 1\n\n\t- Glyph name: uni04A2\tContours detected: 454\tExpected: 1 or 2\n\n\t- Glyph name: uni04A3\tContours detected: 323\tExpected: 1 or 2\n\n\t- Glyph name: uni04A4\tContours detected: 418\tExpected: 1\n\n\t- Glyph name: uni04A5\tContours detected: 293\tExpected: 1\n\n\t- Glyph name: uni04AA\tContours detected: 418\tExpected: 1 or 2\n\n\t- Glyph name: uni04AB\tContours detected: 244\tExpected: 1 or 2\n\n\t- Glyph name: uni04B6\tContours detected: 445\tExpected: 1 or 2\n\n\t- Glyph name: uni04B7\tContours detected: 347\tExpected: 1 or 2\n\n\t- Glyph name: uni04B8\tContours detected: 320\tExpected: 1\n\n\t- Glyph name: uni04B9\tContours detected: 211\tExpected: 1\n\n\t- Glyph name: uni04BA\tContours detected: 305\tExpected: 1\n\n\t- Glyph name: uni04BB\tContours detected: 353\tExpected: 1\n\n\t- Glyph name: uni04C0\tContours detected: 187\tExpected: 1\n\n\t- Glyph name: uni04C1\tContours detected: 794\tExpected: 2\n\n\t- Glyph name: uni04C2\tContours detected: 485\tExpected: 2\n\n\t- Glyph name: uni04CB\tContours detected: 365\tExpected: 1 or 2\n\n\t- Glyph name: uni04CC\tContours detected: 317\tExpected: 1 or 2\n\n\t- Glyph name: uni04CF\tContours detected: 248\tExpected: 1\n\n\t- Glyph name: uni04D0\tContours detected: 367\tExpected: 3\n\n\t- Glyph name: uni04D1\tContours detected: 260\tExpected: 3\n\n\t- Glyph name: uni04D2\tContours detected: 357\tExpected: 4\n\n\t- Glyph name: uni04D3\tContours detected: 234\tExpected: 4\n\n\t- Glyph name: uni04D4\tContours detected: 496\tExpected: 2\n\n\t- Glyph name: uni04D5\tContours detected: 307\tExpected: 3\n\n\t- Glyph name: uni04D6\tContours detected: 270\tExpected: 2\n\n\t- Glyph name: uni04D7\tContours detected: 229\tExpected: 3\n\n\t- Glyph name: uni04D8\tContours detected: 318\tExpected: 2\n\n\t- Glyph name: uni04D9\tContours detected: 290\tExpected: 2\n\n\t- Glyph name: uni04DC\tContours detected: 784\tExpected: 3\n\n\t- Glyph name: uni04DD\tContours detected: 459\tExpected: 3\n\n\t- Glyph name: uni04DE\tContours detected: 348\tExpected: 3\n\n\t- Glyph name: uni04DF\tContours detected: 181\tExpected: 3\n\n\t- Glyph name: uni04E2\tContours detected: 536\tExpected: 2\n\n\t- Glyph name: uni04E3\tContours detected: 327\tExpected: 2\n\n\t- Glyph name: uni04E4\tContours detected: 507\tExpected: 3\n\n\t- Glyph name: uni04E5\tContours detected: 298\tExpected: 3\n\n\t- Glyph name: uni04E6\tContours detected: 479\tExpected: 4\n\n\t- Glyph name: uni04E7\tContours detected: 255\tExpected: 4\n\n\t- Glyph name: uni04E8\tContours detected: 461\tExpected: 3\n\n\t- Glyph name: uni04E9\tContours detected: 250\tExpected: 3\n\n\t- Glyph name: uni04EE\tContours detected: 285\tExpected: 2\n\n\t- Glyph name: uni04EF\tContours detected: 386\tExpected: 2\n\n\t- Glyph name: uni04F0\tContours detected: 256\tExpected: 3\n\n\t- Glyph name: uni04F1\tContours detected: 357\tExpected: 3\n\n\t- Glyph name: uni04F2\tContours detected: 253\tExpected: 3\n\n\t- Glyph name: uni04F3\tContours detected: 354\tExpected: 3\n\n\t- Glyph name: uni04F4\tContours detected: 344\tExpected: 3\n\n\t- Glyph name: uni04F5\tContours detected: 303\tExpected: 3\n\n\t- Glyph name: uni04F6\tContours detected: 344\tExpected: 1 or 2\n\n\t- Glyph name: uni04F7\tContours detected: 214\tExpected: 1 or 2\n\n\t- Glyph name: uni04F8\tContours detected: 525\tExpected: 5\n\n\t- Glyph name: uni04F9\tContours detected: 278\tExpected: 5\n\n\t- Glyph name: uni051A\tContours detected: 431\tExpected: 2\n\n\t- Glyph name: uni051B\tContours detected: 397\tExpected: 2\n\n\t- Glyph name: uni051C\tContours detected: 547\tExpected: 1\n\n\t- Glyph name: uni051D\tContours detected: 233\tExpected: 1\n\n\t- Glyph name: uni0524\tContours detected: 355\tExpected: 1\n\n\t- Glyph name: uni0525\tContours detected: 311\tExpected: 1\n\n\t- Glyph name: uni1E9E\tContours detected: 431\tExpected: 1\n\n\t- Glyph name: uni20AA\tContours detected: 506\tExpected: 2\n\n\t- Glyph name: uni20AE\tContours detected: 213\tExpected: 1\n\n\t- Glyph name: uni20B4\tContours detected: 313\tExpected: 1 or 2\n\n\t- Glyph name: uni20B8\tContours detected: 222\tExpected: 2\n\n\t- Glyph name: uni20B9\tContours detected: 278\tExpected: 1\n\n\t- Glyph name: uni20BD\tContours detected: 433\tExpected: 2\n\n\t- Glyph name: uni2116\tContours detected: 545\tExpected: 3 or 4\n\n\t- Glyph name: uni2206\tContours detected: 275\tExpected: 2\n\n\t- Glyph name: uni2215\tContours detected: 215\tExpected: 1\n\n\t- Glyph name: uogonek\tContours detected: 279\tExpected: 1\n\n\t- Glyph name: uring\tContours detected: 363\tExpected: 3\n\n\t- Glyph name: utilde\tContours detected: 384\tExpected: 2\n\n\t- Glyph name: v\tContours detected: 163\tExpected: 1\n\n\t- Glyph name: w\tContours detected: 233\tExpected: 1\n\n\t- Glyph name: wacute\tContours detected: 244\tExpected: 2\n\n\t- Glyph name: wcircumflex\tContours detected: 258\tExpected: 2\n\n\t- Glyph name: wdieresis\tContours detected: 238\tExpected: 3\n\n\t- Glyph name: wgrave\tContours detected: 239\tExpected: 2\n\n\t- Glyph name: x\tContours detected: 207\tExpected: 1\n\n\t- Glyph name: y\tContours detected: 290\tExpected: 1\n\n\t- Glyph name: yacute\tContours detected: 301\tExpected: 2\n\n\t- Glyph name: ycircumflex\tContours detected: 315\tExpected: 2\n\n\t- Glyph name: ydieresis\tContours detected: 295\tExpected: 3\n\n\t- Glyph name: yen\tContours detected: 231\tExpected: 1 or 2\n\n\t- Glyph name: ygrave\tContours detected: 296\tExpected: 2\n\n\t- Glyph name: z\tContours detected: 198\tExpected: 1\n\n\t- Glyph name: zacute\tContours detected: 209\tExpected: 2\n\n\t- Glyph name: zcaron\tContours detected: 215\tExpected: 2\n\n\t- Glyph name: zdotaccent\tContours detected: 199\tExpected: 2\n\n\t- Glyph name: zero\tContours detected: 432\tExpected: 2 or 3\n [code: contour-count]", "status": "WARN", "traceback": null}], "rationale": "\n Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only\n be constructured in a handful of ways. This means a glyph's contour count\n will only differ slightly amongst different fonts, e.g a 'g' could either\n be 2 or 3 contours, depending on whether its double story or single story.\n\n However, a quotedbl should have 2 contours, unless the font belongs\n to a display family.\n\n This check currently does not cover variable fonts because there's plenty\n of alternative ways of constructing glyphs with multiple outlines for each\n feature in a VarFont. The expected contour count data for this check is\n currently optimized for the typical construction of glyphs in static fonts.\n ", "result": "WARN"}, {"description": "Does the font contain a soft hyphen?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This font has a 'Soft Hyphen' character. [code: softhyphen]", "status": "WARN", "traceback": null}], "rationale": "\n The 'Soft Hyphen' character (codepoint 0x00AD) is used to mark\n a hyphenation possibility within a word in the absence of or\n overriding dictionary hyphenation.\n\n It is sometimes designed empty with no width (such as a control character),\n sometimes the same as the traditional hyphen, sometimes double encoded with\n the hyphen.\n\n That being said, it is recommended to not include it in the font at all,\n because discretionary hyphenation should be handled at the level of the\n shaping engine, not the font. Also, even if present, the software would\n not display that character.\n\n More discussion at:\n https://typedrawers.com/discussion/2046/special-dash-things-softhyphen-horizontalbar\n ", "result": "WARN"}, {"description": "Does the font contain chws and vchw features?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cjk_font", "status": "SKIP", "traceback": null}], "rationale": "\n The W3C recommends the addition of chws and vchw features to CJK fonts\n to enhance the spacing of glyphs in environments which do not fully support\n JLREQ layout rules.\n\n The chws_tool utility (https://github.com/googlefonts/chws_tool) can be used\n to add these features automatically.\n ", "result": "SKIP"}, {"description": "Ensure component transforms do not perform scaling or rotation.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No glyphs had components with scaling or rotation", "status": "PASS", "traceback": null}], "rationale": "\n Some families have glyphs which have been constructed by using\n transformed components e.g the 'u' being constructed from a flipped 'n'.\n\n From a designers point of view, this sounds like a win (less work).\n However, such approaches can lead to rasterization issues, such as\n having the 'u' not sitting on the baseline at certain sizes after\n running the font through ttfautohint.\n\n Other issues are outlines that end up reversed when only one dimension\n is flipped while the other isn't.\n\n As of July 2019, Marc Foley observed that ttfautohint assigns cvt values\n to transformed glyphs as if they are not transformed and the result is\n they render very badly, and that vttLib does not support flipped components.\n\n When building the font with fontmake, the problem can be fixed by adding\n this to the command line:\n\n --filter DecomposeTransformedComponentsFilter\n ", "result": "PASS"}, {"description": "Ensure no GPOS7 lookups are present.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has no GPOS7 lookups", "status": "PASS", "traceback": null}], "rationale": "\n Versions of fonttools >=4.14.0 (19 August 2020) perform an optimisation on\n chained contextual lookups, expressing GSUB6 as GSUB5 and GPOS8 and GPOS7\n where possible (when there are no suffixes/prefixes for all rules in\n the lookup).\n\n However, makeotf has never generated these lookup types and they are rare\n in practice. Perhaps before of this, Mac's CoreText shaper does not correctly\n interpret GPOS7, meaning that these lookups will be ignored by the shaper,\n and fonts containing these lookups will have unintended positioning errors.\n\n To fix this warning, rebuild the font with a recent version of fonttools.\n ", "result": "PASS", "severity": 9}, {"description": "Ensure that the font can be rasterized by FreeType.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font can be rasterized by FreeType.", "status": "PASS", "traceback": null}], "rationale": "\n Malformed fonts can cause FreeType to crash.\n ", "result": "PASS", "severity": 10}, {"description": "Font has the proper sfntVersion value?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has the correct sfntVersion value.", "status": "PASS", "traceback": null}], "rationale": "\n OpenType fonts that contain TrueType outlines should use the value of 0x00010000\n for the sfntVersion. OpenType fonts containing CFF data (version 1 or 2) should\n use 0x4F54544F ('OTTO', when re-interpreted as a Tag) for sfntVersion.\n\n Fonts with the wrong sfntVersion value are rejected by FreeType.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/otff#table-directory\n ", "result": "PASS", "severity": 10}, {"description": "Space and non-breaking space have the same width?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Space and non-breaking space have the same width.", "status": "PASS", "traceback": null}], "rationale": "\n If the space and nbspace glyphs have different widths, then Google Workspace\n has problems with the font.\n\n The nbspace is used to replace the space character in multiple situations in\n documents; such as the space before punctuation in languages that do that. It\n avoids the punctuation to be separated from the last word and go to next line.\n\n This is automatic substitution by the text editors, not by fonts. It's also used\n by designers in text composition practice to create nicely shaped paragraphs.\n If the space and the nbspace are not the same width, it breaks the text\n composition of documents.\n ", "result": "PASS"}, {"description": "Detect any interpolation issues in the font.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n When creating a variable font, the designer must make sure that corresponding\n paths have the same start points across masters, as well as that corresponding\n component shapes are placed in the same order within a glyph across masters.\n If this is not done, the glyph will not interpolate correctly.\n\n Here we check for the presence of potential interpolation errors using the\n fontTools.varLib.interpolatable module.\n ", "result": "SKIP", "severity": 4}, {"description": "Check math signs have the same width.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The most common width is 538 among a set of 2 math glyphs.\nThe following math glyphs have a different width, though:\n\nWidth = 594:\nplus\n\nWidth = 563:\nequal\n\nWidth = 564:\nlogicalnot\n\nWidth = 576:\nplusminus\n\nWidth = 639:\nmultiply\n\nWidth = 517:\ndivide\n\nWidth = 642:\nminus\n\nWidth = 551:\napproxequal, notequal\n\nWidth = 556:\ngreaterequal, lessequal\n [code: width-outliers]", "status": "WARN", "traceback": null}], "rationale": "\n It is a common practice to have math signs sharing the same width\n (preferably the same width as tabular figures accross the entire font family).\n\n This probably comes from the will to avoid additional tabular math signs\n knowing that their design can easily share the same width.\n ", "result": "WARN"}, {"description": "Checking Vertical Metric Linegaps.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 sTypoLineGap and hhea lineGap are both 0.", "status": "PASS", "traceback": null}], "rationale": "\n The LineGap value is a space added to the line height created by the union\n of the (typo/hhea)Ascender and (typo/hhea)Descender. It is handled differently\n according to the environment.\n\n This leading value will be added above the text line in most desktop apps.\n It will be shared above and under in web browsers, and ignored in Windows\n if Use_Typo_Metrics is disabled.\n\n For better linespacing consistency across platforms,\n (typo/hhea)LineGap values must be 0.\n ", "result": "PASS"}, {"description": "Checking STAT table entries in static fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n Adobe feature syntax allows for the definition of a STAT table. Fonts built\n with a hand-coded STAT table in feature syntax may be built either as static\n or variable, but will end up with the same STAT table.\n\n This is a problem, because a STAT table which works on variable fonts\n will not be appropriate for static instances. The examples in the OpenType spec\n of non-variable fonts with a STAT table show that the table entries must be\n restricted to those entries which refer to the static font's position in\n the designspace. i.e. a Regular weight static should only have the following\n entry for the weight axis:\n\n \n \n \n \n\n However, if the STAT table intended for a variable font is compiled into a\n static, it will have many entries for this axis. In this case, Windows will\n read the first entry only, causing all instances to report themselves\n as \"Thin Condensed\".\n ", "result": "SKIP"}, {"description": "Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Lcaron, dcaron, lcaron, tcaron should NOT be composed with quoteright\n or quotesingle or comma or caron(comb). It should be composed with a\n distinctive glyph which doesn't look like an apostrophe.\n\n Source:\n https://ilovetypography.com/2009/01/24/on-diacritics/\n http://diacritics.typo.cz/index.php?id=5\n https://www.typotheque.com/articles/lcaron\n ", "result": "PASS"}], "key": ["", null, null], "result": {"INFO": 2, "PASS": 23, "SKIP": 7, "WARN": 4}}, {"checks": [{"description": "Is the CFF subr/gsubr call depth > 10?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff", "status": "SKIP", "traceback": null}], "rationale": "\n Per \"The Type 2 Charstring Format, Technical Note #5177\",\n the \"Subr nesting, stack limit\" is 10.\n ", "result": "SKIP"}, {"description": "Is the CFF2 subr/gsubr call depth > 10?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff2", "status": "SKIP", "traceback": null}], "rationale": "\n Per \"The CFF2 CharString Format\", the \"Subr nesting, stack limit\" is 10.\n ", "result": "SKIP"}, {"description": "Does the font use deprecated CFF operators or operations?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff", "status": "SKIP", "traceback": null}], "rationale": "\n The 'dotsection' operator and the use of 'endchar' to build accented characters\n from the Adobe Standard Encoding Character Set (\"seac\") are deprecated in CFF.\n Adobe recommends repairing any fonts that use these, especially endchar-as-seac,\n because a rendering issue was discovered in Microsoft Word with a font that\n makes use of this operation. The check treats that usage as a FAIL.\n There are no known ill effects of using dotsection, so that check is a WARN.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"SKIP": 3}}, {"checks": [{"description": "Fonts have equal unicode encodings?", "key": ["", "", []], "logs": [{"message": "Fonts have equal unicode encodings.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Make sure all font files have the same version value.", "key": ["", "", []], "logs": [{"message": "All font files have the same version.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking unitsPerEm value is reasonable.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Filtered: Google Fonts has a stricter policy which is enforced by com.google.fonts/check/unitsperem_strict", "status": "SKIP", "traceback": null}], "rationale": "\n According to the OpenType spec:\n\n The value of unitsPerEm at the head table must be a value\n between 16 and 16384. Any value in this range is valid.\n\n In fonts that have TrueType outlines, a power of 2 is recommended\n as this allows performance optimizations in some rasterizers.\n\n But 1000 is a commonly used value. And 2000 may become\n increasingly more common on Variable Fonts.\n ", "result": "SKIP"}, {"description": "Checking font version fields (head and name table).", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All font version fields match.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking head.macStyle value.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "head macStyle ITALIC bit is properly set.", "status": "PASS", "traceback": null}, {"message": "head macStyle BOLD bit is properly set.", "status": "PASS", "traceback": null}], "rationale": "\n The values of the flags on the macStyle entry on the 'head' OpenType table\n that describe whether a font is bold and/or italic must be coherent with the\n actual style of the font as inferred by its filename.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3, "SKIP": 1}}, {"checks": [{"description": "Fonts have consistent PANOSE proportion?", "key": ["", "", []], "logs": [{"message": "Fonts have consistent PANOSE proportion.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Fonts have consistent PANOSE family type?", "key": ["", "", []], "logs": [{"message": "Fonts have consistent PANOSE family type.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check that OS/2.fsSelection bold & italic settings are unique for each NameID1", "key": ["", "", []], "logs": [{"message": "The OS/2.fsSelection bold & italic settings were unique within each compatible family group.", "status": "PASS", "traceback": null}], "rationale": "\n Per the OpenType spec: name ID 1 'is used in combination with Font Subfamily\n name (name ID 2), and should be shared among at most four fonts that differ\n only in weight or style.\n\n This four-way distinction should also be reflected in the OS/2.fsSelection\n field, using bits 0 and 5.\n ", "result": "PASS"}, {"description": "Check if OS/2 xAvgCharWidth is correct.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 xAvgCharWidth value is correct.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check if OS/2 fsSelection matches head macStyle bold and italic bits.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The OS/2.fsSelection and head.macStyle bold and italic settings match.", "status": "PASS", "traceback": null}], "rationale": "\n The bold and italic bits in OS/2.fsSelection must match the bold and italic\n bits in head.macStyle per the OpenType spec.\n ", "result": "PASS"}, {"description": "Check code page character ranges", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "At least one code page is defined.", "status": "PASS", "traceback": null}], "rationale": "\n At least some programs (such as Word and Sublime Text) under Windows 7\n do not recognize fonts unless code page bits are properly set on the\n ulCodePageRange1 (and/or ulCodePageRange2) fields of the OS/2 table.\n\n More specifically, the fonts are selectable in the font menu, but whichever\n Windows API these applications use considers them unsuitable for any\n character set, so anything set in these fonts is rendered with Arial as a\n fallback font.\n\n This check currently does not identify which code pages should be set.\n Auto-detecting coverage is not trivial since the OpenType specification\n leaves the interpretation of whether a given code page is \"functional\"\n or not open to the font developer to decide.\n\n So here we simply detect as a FAIL when a given font has no code page\n declared at all.\n ", "result": "PASS"}, {"description": "Checking OS/2 achVendID against configuration.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Add the `vendor_id` key to a `fontbakery.yaml` file on your font project directory to enable this check.\nYou'll also need to use the `--configuration` flag when invoking fontbakery.", "status": "SKIP", "traceback": null}], "rationale": "\n When a font project's Vendor ID is specified explicitly on FontBakery's\n configuration file, all binaries must have a matching vendor identifier\n value in the OS/2 table.\n ", "result": "SKIP"}, {"description": "Checking OS/2 fsSelection value.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 fsSelection REGULAR bit is properly set.", "status": "PASS", "traceback": null}, {"message": "OS/2 fsSelection ITALIC bit is properly set.", "status": "PASS", "traceback": null}, {"message": "OS/2 fsSelection BOLD bit is properly set.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 7, "SKIP": 1}}, {"checks": [{"description": "Fonts have consistent underline thickness?", "key": ["", "", []], "logs": [{"message": "Fonts have consistent underline thickness.", "status": "PASS", "traceback": null}], "rationale": "\n Dave C Lemon (Adobe Type Team) recommends setting the underline thickness to be\n consistent across the family.\n\n If thicknesses are not family consistent, words set on the same line which have\n different styles look strange.\n ", "result": "PASS"}, {"description": "Font has correct post table version?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has an acceptable post format 2.0 table version.", "status": "PASS", "traceback": null}], "rationale": "\n Format 2.5 of the 'post' table was deprecated in OpenType 1.3 and\n should not be used.\n\n According to Thomas Phinney, the possible problem with post format 3\n is that under the right combination of circumstances, one can generate\n PDF from a font with a post format 3 table, and not have accurate backing\n store for any text that has non-default glyphs for a given codepoint.\n\n It will look fine but not be searchable. This can affect Latin text with\n high-end typography, and some complex script writing systems, especially\n with higher-quality fonts. Those circumstances generally involve creating\n a PDF by first printing a PostScript stream to disk, and then creating a\n PDF from that stream without reference to the original source document.\n There are some workflows where this applies,but these are not common\n use cases.\n\n Apple recommends against use of post format version 4 as \"no longer\n necessary and should be avoided\". Please see the Apple TrueType reference\n documentation for additional details.\n\n https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6post.html\n\n Acceptable post format versions are 2 and 3 for TTF and OTF CFF2 builds,\n and post format 3 for CFF builds.\n ", "result": "PASS"}, {"description": "Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Value of post.italicAngle is 0.0 with style=\"Regular\".", "status": "PASS", "traceback": null}], "rationale": "\n The 'post' table italicAngle property should be a reasonable amount, likely\n not more than 30\u00b0. Note that in the OpenType specification, the value is\n negative for a rightward lean.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/post\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "Verify that each group of fonts with the same nameID 1 has maximum of 4 fonts.", "key": ["", "", []], "logs": [{"message": "There were no more than 4 fonts per family name.", "status": "PASS", "traceback": null}], "rationale": "\n Per the OpenType spec:\n\n 'The Font Family name [...] should be shared among at most four fonts that\n differ only in weight or style [...]'\n ", "result": "PASS"}, {"description": "Verify that family names in the name table are consistent across all fonts in the family. Checks Typographic Family name (nameID 16) if present, otherwise uses Font Family name (nameID 1)", "key": ["", "", []], "logs": [{"message": "Font family names are consistent across the family.", "status": "PASS", "traceback": null}], "rationale": "\n Per the OpenType spec:\n * \"...many existing applications that use this pair of names assume that a\n Font Family name is shared by at most four fonts that form a font\n style-linking group\"\n * \"For extended typographic families that includes fonts other than the\n four basic styles(regular, italic, bold, bold italic), it is strongly\n recommended that name IDs 16 and 17 be used in fonts to create an\n extended, typographic grouping.\"\n * \"If name ID 16 is absent, then name ID 1 is considered to be the\n typographic family name.\"\n\n https://learn.microsoft.com/en-us/typography/opentype/spec/name\n\n Fonts within a font family all must have consistent names\n in the Typographic Family name (nameID 16)\n or Font Family name (nameID 1), depending on which it uses.\n\n Inconsistent font/typographic family names across fonts in a family\n can result in unexpected behaviors, such as broken style linking.\n ", "result": "PASS"}, {"description": "Check name table for empty records.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No empty name table records found.", "status": "PASS", "traceback": null}], "rationale": "\n Check the name table for empty records,\n as this can cause problems in Adobe apps.\n ", "result": "PASS"}, {"description": "Description strings in the name table must not contain copyright info.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Description strings in the name table do not contain any copyright string.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking correctness of monospaced metadata.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font is not monospaced and all related metadata look good. [code: good]", "status": "PASS", "traceback": null}], "rationale": "\n There are various metadata in the OpenType spec to specify if a font is\n monospaced or not. If the font is not truly monospaced, then no monospaced\n metadata should be set (as sometimes they mistakenly are...)\n\n Requirements for monospace fonts:\n\n * post.isFixedPitch - \"Set to 0 if the font is proportionally spaced,\n non-zero if the font is not proportionally spaced (monospaced)\"\n (https://www.microsoft.com/typography/otspec/post.htm)\n\n * hhea.advanceWidthMax must be correct, meaning no glyph's width value\n is greater. (https://www.microsoft.com/typography/otspec/hhea.htm)\n\n * OS/2.panose.bProportion must be set to 9 (monospace) on latin text fonts.\n\n * OS/2.panose.bSpacing must be set to 3 (monospace) on latin hand written\n or latin symbol fonts.\n\n * Spec says: \"The PANOSE definition contains ten digits each of which currently\n describes up to sixteen variations. Windows uses bFamilyType, bSerifStyle\n and bProportion in the font mapper to determine family type. It also uses\n bProportion to determine if the font is monospaced.\"\n (https://www.microsoft.com/typography/otspec/os2.htm#pan\n https://monotypecom-test.monotype.de/services/pan2)\n\n * OS/2.xAvgCharWidth must be set accurately.\n \"OS/2.xAvgCharWidth is used when rendering monospaced fonts,\n at least by Windows GDI\"\n (http://typedrawers.com/discussion/comment/15397/#Comment_15397)\n\n Also we should report an error for glyphs not of average width.\n\n\n Please also note:\n\n Thomas Phinney told us that a few years ago (as of December 2019), if you gave\n a font a monospace flag in Panose, Microsoft Word would ignore the actual\n advance widths and treat it as monospaced.\n\n Source: https://typedrawers.com/discussion/comment/45140/#Comment_45140\n ", "result": "PASS"}, {"description": "Does full font name begin with the font family name?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Full font name begins with the font family name.", "status": "PASS", "traceback": null}], "rationale": "\n The FULL_FONT_NAME entry in the \u2018name\u2019 table should start with the same string\n as the Family Name (FONT_FAMILY_NAME, TYPOGRAPHIC_FAMILY_NAME or\n WWS_FAMILY_NAME).\n\n If the Family Name is not included as the first part of the Full Font Name, and\n the user embeds the font in a document using a Microsoft Office app, the app\n will fail to render the font when it opens the document again.\n\n NOTE: Up until version 1.5, the OpenType spec included the following exception\n in the definition of Full Font Name:\n\n \"An exception to the [above] definition of Full font name is for Microsoft\n platform strings for CFF OpenType fonts: in this case, the Full font name\n string must be identical to the PostScript FontName in the CFF Name INDEX.\"\n\n https://docs.microsoft.com/en-us/typography/opentype/otspec150/name#name-ids\n ", "result": "PASS"}, {"description": "PostScript name follows OpenType specification requirements?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "PostScript name follows requirements. [code: psname-ok]", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font follows the family naming recommendations?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font follows the family naming recommendations.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "CFF table FontName must match name table ID 6 (PostScript name).", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff", "status": "SKIP", "traceback": null}], "rationale": "\n The PostScript name entries in the font's 'name' table should match\n the FontName string in the 'CFF ' table.\n\n The 'CFF ' table has a lot of information that is duplicated in other tables.\n This information should be consistent across tables, because there's\n no guarantee which table an app will get the data from.\n ", "result": "SKIP"}, {"description": "Name table ID 6 (PostScript name) must be consistent across platforms.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Entries in the \"name\" table for ID 6 (PostScript name) are consistent.", "status": "PASS", "traceback": null}], "rationale": "\n The PostScript name entries in the font's 'name' table should be\n consistent across platforms.\n\n This is the TTF/CFF2 equivalent of the CFF 'name/postscript_vs_cff' check.\n ", "result": "PASS"}, {"description": "Check name table IDs 1, 2, 16, 17 to conform to Italic style.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font is not Italic.", "status": "SKIP", "traceback": null}], "rationale": "\n This check ensures that several entries in the name table\n conform to the font's Upright or Italic style,\n namely IDs 1 & 2 as well as 16 & 17 if they're present.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"PASS": 9, "SKIP": 2}}, {"checks": [{"description": "Does the number of glyphs in the loca table match the maxp table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "'loca' table matches numGlyphs in 'maxp' table.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check hhea.caretSlopeRise and hhea.caretSlopeRun", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "hhea.caretSlopeRise and hhea.caretSlopeRun match with post.italicAngle.", "status": "PASS", "traceback": null}], "rationale": "\n Checks whether hhea.caretSlopeRise and hhea.caretSlopeRun\n match with post.italicAngle.\n\n For Upright fonts, you can set hhea.caretSlopeRise to 1\n and hhea.caretSlopeRun to 0.\n\n For Italic fonts, you can set hhea.caretSlopeRise to head.unitsPerEm\n and calculate hhea.caretSlopeRun like this:\n round(math.tan(\n math.radians(-1 * font[\"post\"].italicAngle)) * font[\"head\"].unitsPerEm)\n\n This check allows for a 0.1\u00b0 rounding difference between the Italic angle\n as calculated by the caret slope and post.italicAngle\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 2}}, {"checks": [{"description": "Does the font have a DSIG table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "ok", "status": "PASS", "traceback": null}], "rationale": "\n Microsoft Office 2013 and below products expect fonts to have a digital\n signature declared in a DSIG table in order to implement OpenType features.\n The EOL date for Microsoft Office 2013 products is 4/11/2023.\n This issue does not impact Microsoft Office 2016 and above products.\n\n As we approach the EOL date, it is now considered better to\n completely remove the table.\n\n But if you still want your font to support OpenType features on Office 2013,\n then you may find it handy to add a fake signature on a placeholder DSIG table\n by running one of the helper scripts provided at\n https://github.com/googlefonts/gftools\n\n Reference: https://github.com/fonttools/fontbakery/issues/1845\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Check glyphs in mark glyph class are non-spacing.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not has spacing glyphs in the GDEF mark glyph class.", "status": "PASS", "traceback": null}], "rationale": "\n Glyphs in the GDEF mark glyph class should be non-spacing.\n\n Spacing glyphs in the GDEF mark glyph class may have incorrect anchor\n positioning that was only intended for building composite glyphs during design.\n ", "result": "PASS"}, {"description": "Check mark characters are in GDEF mark glyph class.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not have mark characters not in the GDEF mark glyph class.", "status": "PASS", "traceback": null}], "rationale": "\n Mark characters should be in the GDEF mark glyph class.\n ", "result": "PASS"}, {"description": "Check GDEF mark glyph class doesn't have characters that are not marks.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not have non-mark characters in the GDEF mark glyph class.", "status": "PASS", "traceback": null}], "rationale": "\n Glyphs in the GDEF mark glyph class become non-spacing and may be repositioned\n if they have mark anchors.\n\n Only combining mark glyphs should be in that class. Any non-mark glyph\n must not be in that class, in particular spacing glyphs.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "Does GPOS table have kerning information? This check skips monospaced fonts as defined by post.isFixedPitch value", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "GPOS table check for kerning information passed.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Is there a usable \"kern\" table declared in the font?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not declare an optional \"kern\" table.", "status": "PASS", "traceback": null}], "rationale": "\n Even though all fonts should have their kerning implemented in the GPOS table,\n there may be kerning info at the kern table as well.\n\n Some applications such as MS PowerPoint require kerning info on the kern table.\n More specifically, they require a format 0 kern subtable from a kern table\n version 0 with only glyphs defined in the cmap table, which is the only one\n that Windows understands (and which is also the simplest and more limited\n of all the kern subtables).\n\n Google Fonts ingests fonts made for download and use on desktops, and does\n all web font optimizations in the serving pipeline (using libre libraries\n that anyone can replicate.)\n\n Ideally, TTFs intended for desktop users (and thus the ones intended for\n Google Fonts) should have both KERN and GPOS tables.\n\n Given all of the above, we currently treat kerning on a v0 kern table\n as a good-to-have (but optional) feature.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Is there any unused data at the end of the glyf table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There is no unused data at the end of the glyf table.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check for points out of bounds.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All glyph paths have coordinates within bounds!", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check glyphs do not have duplicate components which have the same x,y coordinates.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyphs do not contain duplicate components which have the same x,y coordinates.", "status": "PASS", "traceback": null}], "rationale": "\n There have been cases in which fonts had faulty double quote marks, with each\n of them containing two single quote marks as components with the same\n x, y coordinates which makes them visually look like single quote marks.\n\n This check ensures that glyphs do not contain duplicate components\n which have the same x,y coordinates.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "The variable font 'wght' (Weight) axis coordinate must be 400 on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wght_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wght' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght\n\n If a variable font has a 'wght' (Weight) axis, then the coordinate of\n its 'Regular' instance is required to be 400.\n ", "result": "SKIP"}, {"description": "The variable font 'wdth' (Width) axis coordinate must be 100 on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wdth_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wdth' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wdth\n\n If a variable font has a 'wdth' (Width) axis, then the coordinate of\n its 'Regular' instance is required to be 100.\n ", "result": "SKIP"}, {"description": "The variable font 'slnt' (Slant) axis coordinate must be zero on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_slnt_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'slnt' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_slnt\n\n If a variable font has a 'slnt' (Slant) axis, then the coordinate of\n its 'Regular' instance is required to be zero.\n ", "result": "SKIP"}, {"description": "The variable font 'ital' (Italic) axis coordinate must be zero on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_ital_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'ital' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_ital\n\n If a variable font has a 'ital' (Italic) axis, then the coordinate of\n its 'Regular' instance is required to be zero.\n ", "result": "SKIP"}, {"description": "The variable font 'opsz' (Optical Size) axis coordinate should be between 10 and 16 on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_opsz_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'opsz' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_opsz\n\n If a variable font has an 'opsz' (Optical Size) axis, then\n the coordinate of its 'Regular' instance is recommended to be\n a value in the range 10 to 16.\n ", "result": "SKIP"}, {"description": "The variable font 'wght' (Weight) axis coordinate must be 700 on the 'Bold' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wght_axis", "status": "SKIP", "traceback": null}], "rationale": "\n The Open-Type spec's registered\n design-variation tag 'wght' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght\n does not specify a required value for the 'Bold' instance of a variable font.\n\n But Dave Crossland suggested that we should enforce\n a required value of 700 in this case (NOTE: a distinction\n is made between \"no bold instance present\" vs \"bold instance is present\n but its wght coordinate is not == 700\").\n ", "result": "SKIP"}, {"description": "The variable font 'wght' (Weight) axis coordinate must be within spec range of 1 to 1000 on all instances.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wght_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wght' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght\n\n On the 'wght' (Weight) axis, the valid coordinate range is 1-1000.\n ", "result": "SKIP"}, {"description": "The variable font 'wdth' (Width) axis coordinate must strictly greater than zero.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wdth_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wdth' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wdth\n\n On the 'wdth' (Width) axis, the valid numeric range is strictly greater than\n zero.\n ", "result": "SKIP"}, {"description": "The variable font 'slnt' (Slant) axis coordinate specifies positive values in its range?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_slnt_axis", "status": "SKIP", "traceback": null}], "rationale": "\n The OpenType spec says at\n https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_slnt that:\n\n [...] the scale for the Slant axis is interpreted as the angle of slant\n in counter-clockwise degrees from upright. This means that a typical,\n right-leaning oblique design will have a negative slant value. This matches\n the scale used for the italicAngle field in the post table.\n ", "result": "SKIP"}, {"description": "Validates that the value of axisNameID used by each VariationAxisRecord is greater than 255 and less than 32768.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The axisNameID field provides a name ID that can be used to obtain strings\n from the 'name' table that can be used to refer to the axis in application\n user interfaces. The name ID must be greater than 255 and less than 32768.\n ", "result": "SKIP"}, {"description": "Validates that the value of subfamilyNameID used by each InstanceRecord is 2, 17, or greater than 255 and less than 32768.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The subfamilyNameID field provides a name ID that can be used to obtain\n strings from the 'name' table that can be treated as equivalent to name\n ID 17 (typographic subfamily) strings for the given instance. Values of\n 2 or 17 can be used; otherwise, values must be greater than 255 and less\n than 32768.\n ", "result": "SKIP"}, {"description": "Validates that the value of postScriptNameID used by each InstanceRecord is 6, 0xFFFF, or greater than 255 and less than 32768.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The postScriptNameID field provides a name ID that can be used to obtain\n strings from the 'name' table that can be treated as equivalent to name\n ID 6 (PostScript name) strings for the given instance. Values of 6 and\n 0xFFFF can be used; otherwise, values must be greater than 255 and less\n than 32768.\n ", "result": "SKIP"}, {"description": "Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9.1\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The default instance of a font is that instance for which the coordinate\n value of each axis is the defaultValue specified in the corresponding\n variation axis record. An instance record is not required for the default\n instance, though an instance record can be provided. When enumerating named\n instances, the default instance should be enumerated even if there is no\n corresponding instance record. If an instance record is included for the\n default instance (that is, an instance record has coordinates set to default\n values), then the nameID value should be set to either 2 or 17 or to a\n name ID with the same value as name ID 2 or 17. Also, if a postScriptNameID is\n included in instance records, and the postScriptNameID value should be set\n to 6 or to a name ID with the same value as name ID 6.\n ", "result": "SKIP"}, {"description": "Validates that all of the instance records in a given font have the same size.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n All of the instance records in a given font must be the same size, with\n all either including or omitting the postScriptNameID field. [...]\n If the value is 0xFFFF, then the value is ignored, and no PostScript name\n equivalent is provided for the instance.\n ", "result": "SKIP"}, {"description": "Validates that all of the instance records in a given font have distinct data.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n All of the instance records in a font should have distinct coordinates\n and distinct subfamilyNameID and postScriptName ID values. If two or more\n records share the same coordinates, the same nameID values or the same\n postScriptNameID values, then all but the first can be ignored.\n ", "result": "SKIP"}, {"description": "Validate foundry-defined design-variation axis tag names.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's syntactic requirements for\n foundry-defined design-variation axis tags available at\n https://learn.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg\n\n Foundry-defined tags must begin with an uppercase letter\n and must use only uppercase letters or digits.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"SKIP": 16}}, {"checks": [{"description": "Ensure VFs have 'ital' STAT axis.", "key": ["", "", []], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Check that related Upright and Italic VFs have a\n 'ital' axis in STAT table.\n ", "result": "PASS"}, {"description": "All fvar axes have a correspondent Axis Record on STAT table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the OpenType spec, there must be an Axis Record\n for every axis defined in the fvar table.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/stat#axis-records\n ", "result": "SKIP"}, {"description": "STAT table has Axis Value tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n According to the OpenType spec, in a variable font, it is strongly recommended\n that axis value tables be included for every element of typographic subfamily\n names for all of the named instances defined in the 'fvar' table.\n\n Axis value tables are particularly important for variable fonts, but can also\n be used in non-variable fonts. When used in non-variable fonts, axis value\n tables for particular values should be implemented consistently across fonts\n in the family.\n\n If present, Format 4 Axis Value tables are checked to ensure they have more than\n one AxisValueRecord (a strong recommendation from the OpenType spec).\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/stat#axis-value-tables\n ", "result": "SKIP"}, {"description": "Ensure 'ital' STAT axis is boolean value (derived from com.google.fonts/check/italic_axis_in_stat_is_boolean)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n Check that the value of the 'ital' STAT axis is boolean (either 0 or 1),\n and elided for the Upright and not elided for the Italic,\n and that the Upright is linked to the Italic.\n ", "result": "SKIP"}, {"description": "Ensure 'ital' STAT axis is last. (derived from com.google.fonts/check/italic_axis_last)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n Check that the 'ital' STAT axis is last in axis order.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"PASS": 1, "SKIP": 4}}, {"checks": [{"description": "Does the font have any invalid feature tags?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No invalid feature tags were found", "status": "PASS", "traceback": null}], "rationale": "\n Incorrect tags can be indications of typos, leftover debugging code or\n questionable approaches, or user error in the font editor. Such typos can\n cause features and language support to fail to work as intended.\n ", "result": "PASS", "severity": 8}, {"description": "Does the font have any invalid script tags?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No invalid script tags were found", "status": "PASS", "traceback": null}], "rationale": "\n Incorrect script tags can be indications of typos, leftover debugging code\n or questionable approaches, or user error in the font editor. Such typos can\n cause features and language support to fail to work as intended.\n ", "result": "PASS", "severity": 8}, {"description": "Does the font have any invalid language tags?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No invalid language tags were found", "status": "PASS", "traceback": null}], "rationale": "\n Incorrect language tags can be indications of typos, leftover debugging code\n or questionable approaches, or user error in the font editor. Such typos can\n cause features and language support to fail to work as intended.\n ", "result": "PASS", "severity": 8}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "Check that texts shape as per expectation", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Shaping test directory not defined in configuration file", "status": "SKIP", "traceback": null}], "rationale": "\n Fonts with complex layout rules can benefit from regression tests to ensure\n that the rules are behaving as designed. This checks runs a shaping test\n suite and compares expected shaping against actual shaping, reporting\n any differences.\n\n Shaping test suites should be written by the font engineer and referenced\n in the FontBakery configuration file. For more information about write\n shaping test files and how to configure FontBakery to read the shaping\n test suites, see https://simoncozens.github.io/tdd-for-otl/\n ", "result": "SKIP"}, {"description": "Check that no forbidden glyphs are found while shaping", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Shaping test directory not defined in configuration file", "status": "SKIP", "traceback": null}], "rationale": "\n Fonts with complex layout rules can benefit from regression tests to ensure\n that the rules are behaving as designed. This checks runs a shaping test\n suite and reports if any glyphs are generated in the shaping which should\n not be produced. (For example, .notdef glyphs, visible viramas, etc.)\n\n Shaping test suites should be written by the font engineer and referenced in\n the FontBakery configuration file. For more information about write shaping\n test files and how to configure FontBakery to read the shaping test suites,\n see https://simoncozens.github.io/tdd-for-otl/\n ", "result": "SKIP"}, {"description": "Check that no collisions are found while shaping", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Shaping test directory not defined in configuration file", "status": "SKIP", "traceback": null}], "rationale": "\n Fonts with complex layout rules can benefit from regression tests to ensure\n that the rules are behaving as designed. This checks runs a shaping test\n suite and reports instances where the glyphs collide in unexpected ways.\n\n Shaping test suites should be written by the font engineer and referenced\n in the FontBakery configuration file. For more information about write\n shaping test files and how to configure FontBakery to read the shaping\n test suites, see https://simoncozens.github.io/tdd-for-otl/\n ", "result": "SKIP"}, {"description": "Ensure dotted circle glyph is present and can attach marks.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No dotted circle glyph present [code: missing-dotted-circle]", "status": "WARN", "traceback": null}], "rationale": "\n The dotted circle character (U+25CC) is inserted by shaping engines before\n mark glyphs which do not have an associated base, especially in the context\n of broken syllabic clusters.\n\n For fonts containing combining marks, it is recommended that the dotted circle\n character be included so that these isolated marks can be displayed properly;\n for fonts supporting complex scripts, this should be considered mandatory.\n\n Additionally, when a dotted circle glyph is present, it should be able to\n display all marks correctly, meaning that it should contain anchors for all\n attaching marks.\n ", "result": "WARN", "severity": 3}, {"description": "Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikmaps/RubikMaps-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The dot of soft dotted characters used in orthographies _must_ disappear in the following strings: \u012f\u0300 \u012f\u0301 \u012f\u0302 \u012f\u0303 \u012f\u0304 \u012f\u030c \u0456\u0301\n\nThe dot of soft dotted characters _should_ disappear in other cases, for example: i\u0326\u0312 j\u0326\u0312 \u012f\u0306 \u012f\u0307 \u012f\u0308 \u012f\u030a \u012f\u030b \u012f\u0312 \u012f\u0326\u0312 \u012f\u0327\u0312 \u012f\u0328\u0312 \u012f\u0335\u0300 \u012f\u0335\u0301 \u012f\u0335\u0302 \u012f\u0335\u0303 \u012f\u0335\u0304 \u012f\u0335\u0306 \u012f\u0335\u0307 \u012f\u0335\u0308 \u012f\u0335\u030a\n\nYour font fully covers the following languages that require the soft-dotted feature: Ukrainian (Cyrl, 29,273,587 speakers), Dutch (Latn, 31,709,104 speakers), Lithuanian (Latn, 2,357,094 speakers), Belarusian (Cyrl, 10,064,517 speakers). \n\nYour font does *not* cover the following languages that require the soft-dotted feature: Kom (Latn, 360,685 speakers), Nateni (Latn, 100,000 speakers), Igbo (Latn, 27,823,640 speakers), Ebira (Latn, 2,200,000 speakers), Lugbara (Latn, 2,200,000 speakers), Basaa (Latn, 332,940 speakers), Koonzime (Latn, 40,000 speakers), Navajo (Latn, 166,319 speakers), Aghem (Latn, 38,843 speakers), Dan (Latn, 1,099,244 speakers), Ma\u2019di (Latn, 584,000 speakers), Avokaya (Latn, 100,000 speakers), Gulay (Latn, 250,478 speakers), Mango (Latn, 77,000 speakers), Ejagham (Latn, 120,000 speakers), Sar (Latn, 500,000 speakers). [code: soft-dotted]", "status": "WARN", "traceback": null}], "rationale": "\n An accent placed on characters with a \"soft dot\", like i or j, causes\n the dot to disappear.\n An explicit dot above can be added where required.\n See \"Diacritics on i and j\" in Section 7.1, \"Latin\" in The Unicode Standard.\n\n Characters with the Soft_Dotted property are listed in\n https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n\n See also:\n https://googlefonts.github.io/gf-guide/diacritics.html#soft-dotted-glyphs\n ", "result": "WARN", "severity": 3}], "key": ["", null, null], "result": {"SKIP": 3, "WARN": 2}}], "fontbakery_version": "0.10.4"} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikmaps/GoogleFonts.json b/docs/fontbakery-reports/rubikmaps/GoogleFonts.json new file mode 100644 index 0000000..fb78a0e --- /dev/null +++ b/docs/fontbakery-reports/rubikmaps/GoogleFonts.json @@ -0,0 +1,7 @@ +{ + "color": "green", + "label": "Google Fonts", + "logoSvg": "", + "message": "86%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikmaps/ShapingChecks.json b/docs/fontbakery-reports/rubikmaps/ShapingChecks.json new file mode 100644 index 0000000..1e5a389 --- /dev/null +++ b/docs/fontbakery-reports/rubikmaps/ShapingChecks.json @@ -0,0 +1,7 @@ +{ + "color": "red", + "label": "Shaping Checks", + "logoSvg": "", + "message": "0%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikmaps/Universal.json b/docs/fontbakery-reports/rubikmaps/Universal.json new file mode 100644 index 0000000..cf5bd91 --- /dev/null +++ b/docs/fontbakery-reports/rubikmaps/Universal.json @@ -0,0 +1,7 @@ +{ + "color": "green", + "label": "Universal", + "logoSvg": "", + "message": "81%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikmaps/overall.json b/docs/fontbakery-reports/rubikmaps/overall.json new file mode 100644 index 0000000..6b5caf8 --- /dev/null +++ b/docs/fontbakery-reports/rubikmaps/overall.json @@ -0,0 +1,7 @@ +{ + "color": "green", + "label": "FontBakery QA", + "logoSvg": "", + "message": "87%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikscribble-report.html b/docs/fontbakery-reports/rubikscribble-report.html new file mode 100644 index 0000000..ef6814e --- /dev/null +++ b/docs/fontbakery-reports/rubikscribble-report.html @@ -0,0 +1,2597 @@ + + + + + FontBakery Check Report + + + +
+ +
+ Fontbakery Technical Report +
+
+ +
+

If you think a check is flawed or have an idea for a check, please file an issue at https://github.com/fonttools/fontbakery/issues and remember to include a pointer to the repo and branch you're checking.

+

Summary

+ + + + + + + + + + + + + + + + + + + + + + + + + +
💥 ERROR🔥 FAIL⚠️ WARN⏩ SKIPℹ️ INFO✅ PASS
049649161
0%2%5%35%5%89%
+ +

Note: The following loglevels were omitted in this report: SKIP, INFO, PASS, DEBUG

+ +

Meaning of check results:

+ +
    +
  • 💥 An ERROR is something wrong with FontBakery itself, possibly a bug. +
  • 🔥 A FAIL is a problem with the font that must be fixed. +
  • ⚠️ A WARN is something that you should consider addressing. +
  • ℹ️ An INFO result simply prints something useful. Typically stats. +
  • ✅ A PASS means the font looks good for the given checking routine. +
  • ⏩ And a SKIP happens when the check does not apply to the given font. +
+ +

If you get ERRORs, please help us improve the tool by reporting them at our + issue tracker.

+ +

(but other kinds of bug reports and/or feature requests + are also always welcome, of course!)

+ +

FontBakery version: 0.10.4

+ +

Section: Google Fonts

+🔥🔥🔥🔥⚠️⚠️⚠️⚠️⚠️⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩ℹ️ℹ️ℹ️ℹ️ℹ️ℹ️ℹ️ +

Checking OS/2 achVendID.

+
Check ID: com.google.fonts/check/vendor_id
+ +
⚠️ RubikScribble-Regular.ttf
  • ⚠️ WARN

    OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx +[code: unknown]

    +
+

Check for codepoints not covered by METADATA subsets.

+
Check ID: com.google.fonts/check/metadata/unreachable_subsetting
+ +
⚠️ RubikScribble-Regular.ttf
  • ⚠️ WARN

    The following codepoints supported by the font are not covered by +any subsets defined in the font's metadata file, and will never +be served. You can solve this by either manually adding additional +subset declarations to METADATA.pb, or by editing the glyphset +definitions.

    +
      +
    • U+02C7 CARON: try adding one of: yi, tifinagh, canadian-aboriginal
    • +
    • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
    • +
    • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
    • +
    • U+02DB OGONEK: try adding one of: yi, canadian-aboriginal
    • +
    • U+02DD DOUBLE ACUTE ACCENT: not included in any glyphset definition
    • +
    • U+0306 COMBINING BREVE: try adding one of: old-permic, tifinagh
    • +
    • U+030A COMBINING RING ABOVE: try adding syriac
    • +
    • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage
    • +
    • U+030C COMBINING CARON: try adding one of: tai-le, cherokee
    • +
    • U+0312 COMBINING TURNED COMMA ABOVE: not included in any glyphset definition
    • +
    • U+0326 COMBINING COMMA BELOW: not included in any glyphset definition
    • +
    • U+0327 COMBINING CEDILLA: not included in any glyphset definition
    • +
    • U+0328 COMBINING OGONEK: not included in any glyphset definition
    • +
    • U+0335 COMBINING SHORT STROKE OVERLAY: not included in any glyphset definition
    • +
    • U+0337 COMBINING SHORT SOLIDUS OVERLAY: not included in any glyphset definition
    • +
    • U+0338 COMBINING LONG SOLIDUS OVERLAY: not included in any glyphset definition
    • +
    • U+2021 DOUBLE DAGGER: try adding adlam
    • +
    • U+2030 PER MILLE SIGN: try adding adlam
    • +
    • U+2070 SUPERSCRIPT ZERO: not included in any glyphset definition
    • +
    • U+2075 SUPERSCRIPT FIVE: not included in any glyphset definition
    • +
    • U+2076 SUPERSCRIPT SIX: not included in any glyphset definition
    • +
    • U+2077 SUPERSCRIPT SEVEN: not included in any glyphset definition
    • +
    • U+2078 SUPERSCRIPT EIGHT: not included in any glyphset definition
    • +
    • U+2079 SUPERSCRIPT NINE: not included in any glyphset definition
    • +
    • U+207D SUPERSCRIPT LEFT PARENTHESIS: not included in any glyphset definition
    • +
    • U+207E SUPERSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition
    • +
    • U+2080 SUBSCRIPT ZERO: not included in any glyphset definition
    • +
    • U+2081 SUBSCRIPT ONE: not included in any glyphset definition
    • +
    • U+2082 SUBSCRIPT TWO: not included in any glyphset definition
    • +
    • U+2083 SUBSCRIPT THREE: not included in any glyphset definition
    • +
    • U+2084 SUBSCRIPT FOUR: not included in any glyphset definition
    • +
    • U+2085 SUBSCRIPT FIVE: not included in any glyphset definition
    • +
    • U+2086 SUBSCRIPT SIX: not included in any glyphset definition
    • +
    • U+2087 SUBSCRIPT SEVEN: not included in any glyphset definition
    • +
    • U+2088 SUBSCRIPT EIGHT: not included in any glyphset definition
    • +
    • U+2089 SUBSCRIPT NINE: not included in any glyphset definition
    • +
    • U+208D SUBSCRIPT LEFT PARENTHESIS: not included in any glyphset definition
    • +
    • U+208E SUBSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition
    • +
    • U+212E ESTIMATED SYMBOL: not included in any glyphset definition
    • +
    • U+2153 VULGAR FRACTION ONE THIRD: not included in any glyphset definition
    • +
    • U+2154 VULGAR FRACTION TWO THIRDS: not included in any glyphset definition
    • +
    • U+215B VULGAR FRACTION ONE EIGHTH: not included in any glyphset definition
    • +
    • U+215C VULGAR FRACTION THREE EIGHTHS: not included in any glyphset definition
    • +
    • U+215D VULGAR FRACTION FIVE EIGHTHS: not included in any glyphset definition
    • +
    • U+215E VULGAR FRACTION SEVEN EIGHTHS: not included in any glyphset definition
    • +
    • U+FB01 LATIN SMALL LIGATURE FI: not included in any glyphset definition
    • +
    • U+FB02 LATIN SMALL LIGATURE FL: not included in any glyphset definition
    • +
    +

    Or you can add the above codepoints to one of the subsets supported by the font: cyrillic, cyrillic-ext, hebrew, latin, latin-ext, math, menu, symbols [code: unreachable-subsetting]

    +
+

METADATA.pb: Check URL on copyright string is the same as in repository_url field.

+
Check ID: com.google.fonts/check/metadata/consistent_repo_urls
+ +
🔥 RubikScribble-Regular.ttf
  • 🔥 FAIL

    Repository URL is https://github.com/NaN-xyz/Rubik-Filtered

    +

    But: OFL text has 'https:/' and HTML description has 'github.com/NaN-xyz/Glyph-Filters' +[code: mismatch]

    +
+

EXPERIMENTAL CHECK - Since 2023/Nov/02
Shapes languages in all GF glyphsets.

+
Check ID: com.google.fonts/check/glyphsets/shape_languages
+ +
🔥 RubikScribble-Regular.ttf
  • 🔥 FAIL

    GF_Latin_Core glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| haw_Latn (Hawaiian) | Some base glyphs were missing: ʻ | +| ^ | Shaper produced a .notdef | +| mh_Latn (Marshallese) | Some base glyphs were missing: Ḷ, ḷ, Ṃ, ṃ, Ṇ, ṇ, Ọ, ọ | +| ^ | Some mark glyphs were missing: ◌̣ | +| ^ | Shaper produced a .notdef | +| scn_Latn (Sicilian) | Some base glyphs were missing: Ḍ, ḍ | +| ^ | Shaper produced a .notdef | +| teo_Latn (Teso) | Some base glyphs were missing: Ɔ, Ɛ, Ɨ, Ʉ, ɔ, ɛ, ɨ, ʉ, ᵃ, ᵉ, ᵋ, ᵒ, ᵓ, ᵘ, ᶤ, ᶶ, ⁱ | +| ^ | Shaper produced a .notdef |

    +

    [code: failed-language-shaping]

    +
  • 🔥 FAIL

    GF_Cyrillic_Plus glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| tg_Cyrl (Tajik) | Some base glyphs were missing: ҳ | +| ^ | Shaper produced a .notdef | +| uz_Cyrl (Uzbek (Cyrillic)) | Some base glyphs were missing: ҳ | +| ^ | Shaper produced a .notdef |

    +

    [code: failed-language-shaping]

    +
  • ⚠️ WARN

    GF_Latin_Core glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| lg_Latn (Ganda) | No variant glyphs were found for Eng | +| dyo_Latn (Jola-Fonyi) | No variant glyphs were found for Eng | +| ny_Latn (Nyanja) | No variant glyphs were found for Eng | +| wo_Latn (Wolof) | No variant glyphs were found for Eng |

    +

    [code: warning-language-shaping]

    +
  • ⚠️ WARN

    GF_Cyrillic_Plus glyphset:

    +

    | Language | FAIL messages | +| :--- | :--- | +| ku_Cyrl (Kurdish) | No exemplar glyphs were defined for language Kurdish |

    +

    [code: warning-language-shaping]

    +
+

Is there kerning info for non-ligated sequences?

+
Check ID: com.google.fonts/check/kerning_for_non_ligated_sequences
+ +
⚠️ RubikScribble-Regular.ttf
  • ⚠️ WARN

    GPOS table lacks kerning info for the following non-ligated sequences:

    +
    - f + f
    +
    +- f + i
    +
    +- i + f
    +
    +- f + l
    +
    +- l + f
    +
    +- i + l [code: lacks-kern-info]
    +
    +
+

Check font follows the Google Fonts vertical metric schema

+
Check ID: com.google.fonts/check/vertical_metrics
+ +
🔥 RubikScribble-Regular.ttf
  • 🔥 FAIL

    The sum of hhea.ascender + abs(hhea.descender) + hhea.lineGap is 1185 when it should be at least 1200 [code: bad-hhea-range]

    +
+

METADATA.pb: Designers are listed correctly on the Google Fonts catalog?

+
Check ID: com.google.fonts/check/metadata/designer_profiles
+ +
🔥 RubikScribble-Regular.ttf
  • 🔥 FAIL

    Designer Luke Prowse still does not have an avatar image. Please provide one. [code: missing-avatar]

    +
+

On a family update, the DESCRIPTION.en_us.html file should ideally also be updated.

+
Check ID: com.google.fonts/check/description/family_update
+ +
⚠️ RubikScribble-Regular.ttf
  • ⚠️ WARN

    The DESCRIPTION.en_us.html file in this family has not changed in comparison to the latest font release on the google/fonts github repo. +Please consider mentioning note-worthy improvements made to the family recently. [code: description-not-updated]

    +
+

Ensure fonts have ScriptLangTags declared on the 'meta' table.

+
Check ID: com.google.fonts/check/meta/script_lang_tags
+ +
⚠️ RubikScribble-Regular.ttf
  • ⚠️ WARN

    This font file does not have a 'meta' table. [code: lacks-meta-table]

    +
+

Section: Universal

+⚠️⚠️⏩⏩⏩⏩⏩⏩⏩ℹ️ℹ️ +

Check if each glyph has the recommended amount of contours.

+
Check ID: com.google.fonts/check/contour_count
+ +
⚠️ RubikScribble-Regular.ttf
  • ⚠️ WARN

    This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

    +

    The following glyphs do not have the recommended number of contours:

    +
    - Glyph name: exclam	Contours detected: 4	Expected: 2
    +
    +- Glyph name: quotedbl	Contours detected: 4	Expected: 2
    +
    +- Glyph name: numbersign	Contours detected: 5	Expected: 2
    +
    +- Glyph name: percent	Contours detected: 10	Expected: 5
    +
    +- Glyph name: ampersand	Contours detected: 6	Expected: 1, 2 or 3
    +
    +- Glyph name: quotesingle	Contours detected: 2	Expected: 1
    +
    +- Glyph name: parenleft	Contours detected: 2	Expected: 1
    +
    +- Glyph name: parenright	Contours detected: 2	Expected: 1
    +
    +- Glyph name: asterisk	Contours detected: 2	Expected: 1 or 4
    +
    +- Glyph name: plus	Contours detected: 2	Expected: 1
    +
    +- Glyph name: comma	Contours detected: 2	Expected: 1
    +
    +- Glyph name: hyphen	Contours detected: 2	Expected: 1
    +
    +- Glyph name: period	Contours detected: 2	Expected: 1
    +
    +- Glyph name: slash	Contours detected: 2	Expected: 1
    +
    +- Glyph name: zero	Contours detected: 4	Expected: 2 or 3
    +
    +- Glyph name: one	Contours detected: 2	Expected: 1
    +
    +- Glyph name: two	Contours detected: 2	Expected: 1
    +
    +- Glyph name: three	Contours detected: 2	Expected: 1
    +
    +- Glyph name: four	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: five	Contours detected: 2	Expected: 1
    +
    +- Glyph name: six	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: seven	Contours detected: 2	Expected: 1
    +
    +- Glyph name: eight	Contours detected: 6	Expected: 3
    +
    +- Glyph name: nine	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: colon	Contours detected: 4	Expected: 2
    +
    +- Glyph name: semicolon	Contours detected: 4	Expected: 2
    +
    +- Glyph name: less	Contours detected: 2	Expected: 1
    +
    +- Glyph name: equal	Contours detected: 4	Expected: 2
    +
    +- Glyph name: greater	Contours detected: 2	Expected: 1
    +
    +- Glyph name: question	Contours detected: 4	Expected: 2
    +
    +- Glyph name: at	Contours detected: 4	Expected: 2
    +
    +- Glyph name: A	Contours detected: 3	Expected: 2
    +
    +- Glyph name: B	Contours detected: 6	Expected: 2 or 3
    +
    +- Glyph name: C	Contours detected: 2	Expected: 1
    +
    +- Glyph name: D	Contours detected: 4	Expected: 2
    +
    +- Glyph name: E	Contours detected: 2	Expected: 1
    +
    +- Glyph name: F	Contours detected: 2	Expected: 1
    +
    +- Glyph name: G	Contours detected: 2	Expected: 1
    +
    +- Glyph name: H	Contours detected: 2	Expected: 1
    +
    +- Glyph name: I	Contours detected: 2	Expected: 1
    +
    +- Glyph name: J	Contours detected: 2	Expected: 1
    +
    +- Glyph name: L	Contours detected: 2	Expected: 1
    +
    +- Glyph name: M	Contours detected: 2	Expected: 1
    +
    +- Glyph name: N	Contours detected: 2	Expected: 1
    +
    +- Glyph name: O	Contours detected: 4	Expected: 2
    +
    +- Glyph name: P	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: Q	Contours detected: 4	Expected: 2
    +
    +- Glyph name: R	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: S	Contours detected: 2	Expected: 1
    +
    +- Glyph name: T	Contours detected: 2	Expected: 1
    +
    +- Glyph name: U	Contours detected: 2	Expected: 1
    +
    +- Glyph name: V	Contours detected: 2	Expected: 1
    +
    +- Glyph name: X	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Y	Contours detected: 3	Expected: 1
    +
    +- Glyph name: Z	Contours detected: 2	Expected: 1
    +
    +- Glyph name: bracketleft	Contours detected: 2	Expected: 1
    +
    +- Glyph name: backslash	Contours detected: 2	Expected: 1
    +
    +- Glyph name: bracketright	Contours detected: 2	Expected: 1
    +
    +- Glyph name: asciicircum	Contours detected: 2	Expected: 1
    +
    +- Glyph name: underscore	Contours detected: 2	Expected: 1
    +
    +- Glyph name: grave	Contours detected: 2	Expected: 1
    +
    +- Glyph name: a	Contours detected: 4	Expected: 2
    +
    +- Glyph name: b	Contours detected: 4	Expected: 2
    +
    +- Glyph name: c	Contours detected: 2	Expected: 1
    +
    +- Glyph name: d	Contours detected: 4	Expected: 2
    +
    +- Glyph name: e	Contours detected: 4	Expected: 2
    +
    +- Glyph name: f	Contours detected: 2	Expected: 1
    +
    +- Glyph name: g	Contours detected: 5	Expected: 2 or 3
    +
    +- Glyph name: h	Contours detected: 2	Expected: 1
    +
    +- Glyph name: i	Contours detected: 4	Expected: 2
    +
    +- Glyph name: j	Contours detected: 4	Expected: 2
    +
    +- Glyph name: l	Contours detected: 2	Expected: 1
    +
    +- Glyph name: m	Contours detected: 2	Expected: 1
    +
    +- Glyph name: n	Contours detected: 2	Expected: 1
    +
    +- Glyph name: o	Contours detected: 4	Expected: 2
    +
    +- Glyph name: p	Contours detected: 4	Expected: 2
    +
    +- Glyph name: q	Contours detected: 4	Expected: 2
    +
    +- Glyph name: r	Contours detected: 2	Expected: 1
    +
    +- Glyph name: s	Contours detected: 2	Expected: 1
    +
    +- Glyph name: t	Contours detected: 2	Expected: 1
    +
    +- Glyph name: u	Contours detected: 2	Expected: 1
    +
    +- Glyph name: v	Contours detected: 2	Expected: 1
    +
    +- Glyph name: w	Contours detected: 2	Expected: 1
    +
    +- Glyph name: x	Contours detected: 2	Expected: 1
    +
    +- Glyph name: z	Contours detected: 2	Expected: 1
    +
    +- Glyph name: braceleft	Contours detected: 2	Expected: 1
    +
    +- Glyph name: bar	Contours detected: 2	Expected: 1
    +
    +- Glyph name: braceright	Contours detected: 2	Expected: 1
    +
    +- Glyph name: asciitilde	Contours detected: 2	Expected: 1
    +
    +- Glyph name: exclamdown	Contours detected: 4	Expected: 2
    +
    +- Glyph name: currency	Contours detected: 4	Expected: 2
    +
    +- Glyph name: brokenbar	Contours detected: 4	Expected: 2
    +
    +- Glyph name: section	Contours detected: 4	Expected: 2
    +
    +- Glyph name: dieresis	Contours detected: 4	Expected: 2
    +
    +- Glyph name: copyright	Contours detected: 6	Expected: 3
    +
    +- Glyph name: guillemotleft	Contours detected: 4	Expected: 2
    +
    +- Glyph name: logicalnot	Contours detected: 2	Expected: 1
    +
    +- Glyph name: registered	Contours detected: 8	Expected: 3 or 4
    +
    +- Glyph name: macron	Contours detected: 2	Expected: 1
    +
    +- Glyph name: degree	Contours detected: 4	Expected: 2
    +
    +- Glyph name: plusminus	Contours detected: 3	Expected: 1 or 2
    +
    +- Glyph name: uni00B2	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni00B3	Contours detected: 3	Expected: 1
    +
    +- Glyph name: acute	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni00B5	Contours detected: 2	Expected: 1
    +
    +- Glyph name: periodcentered	Contours detected: 2	Expected: 1
    +
    +- Glyph name: cedilla	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni00B9	Contours detected: 2	Expected: 1
    +
    +- Glyph name: ordmasculine	Contours detected: 4	Expected: 2 or 3
    +
    +- Glyph name: guillemotright	Contours detected: 6	Expected: 2
    +
    +- Glyph name: onequarter	Contours detected: 9	Expected: 3 or 4
    +
    +- Glyph name: onehalf	Contours detected: 7	Expected: 3
    +
    +- Glyph name: threequarters	Contours detected: 10	Expected: 3 or 4
    +
    +- Glyph name: questiondown	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Agrave	Contours detected: 5	Expected: 3
    +
    +- Glyph name: Aacute	Contours detected: 5	Expected: 3
    +
    +- Glyph name: Acircumflex	Contours detected: 5	Expected: 3
    +
    +- Glyph name: Atilde	Contours detected: 5	Expected: 3
    +
    +- Glyph name: Adieresis	Contours detected: 7	Expected: 4
    +
    +- Glyph name: Aring	Contours detected: 7	Expected: 3 or 4
    +
    +- Glyph name: AE	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Egrave	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Eacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ecircumflex	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Edieresis	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Igrave	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Iacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Icircumflex	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Idieresis	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Eth	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ntilde	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ograve	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Oacute	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Ocircumflex	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Otilde	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Odieresis	Contours detected: 8	Expected: 4
    +
    +- Glyph name: multiply	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Oslash	Contours detected: 6	Expected: 2 or 3
    +
    +- Glyph name: Ugrave	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Uacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ucircumflex	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Udieresis	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Yacute	Contours detected: 5	Expected: 2
    +
    +- Glyph name: Thorn	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: germandbls	Contours detected: 2	Expected: 1
    +
    +- Glyph name: agrave	Contours detected: 6	Expected: 3
    +
    +- Glyph name: aacute	Contours detected: 6	Expected: 3
    +
    +- Glyph name: acircumflex	Contours detected: 7	Expected: 3
    +
    +- Glyph name: atilde	Contours detected: 6	Expected: 3
    +
    +- Glyph name: adieresis	Contours detected: 8	Expected: 4
    +
    +- Glyph name: aring	Contours detected: 8	Expected: 4
    +
    +- Glyph name: ae	Contours detected: 6	Expected: 3
    +
    +- Glyph name: egrave	Contours detected: 6	Expected: 3
    +
    +- Glyph name: eacute	Contours detected: 6	Expected: 3
    +
    +- Glyph name: ecircumflex	Contours detected: 7	Expected: 3
    +
    +- Glyph name: edieresis	Contours detected: 8	Expected: 4
    +
    +- Glyph name: igrave	Contours detected: 4	Expected: 2
    +
    +- Glyph name: iacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: icircumflex	Contours detected: 5	Expected: 2
    +
    +- Glyph name: idieresis	Contours detected: 6	Expected: 3
    +
    +- Glyph name: eth	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ntilde	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ograve	Contours detected: 6	Expected: 3
    +
    +- Glyph name: oacute	Contours detected: 6	Expected: 3
    +
    +- Glyph name: ocircumflex	Contours detected: 7	Expected: 3
    +
    +- Glyph name: otilde	Contours detected: 6	Expected: 3
    +
    +- Glyph name: odieresis	Contours detected: 8	Expected: 4
    +
    +- Glyph name: divide	Contours detected: 4	Expected: 3
    +
    +- Glyph name: oslash	Contours detected: 6	Expected: 3
    +
    +- Glyph name: ugrave	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ucircumflex	Contours detected: 5	Expected: 2
    +
    +- Glyph name: udieresis	Contours detected: 6	Expected: 3
    +
    +- Glyph name: yacute	Contours detected: 3	Expected: 2
    +
    +- Glyph name: thorn	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ydieresis	Contours detected: 5	Expected: 3
    +
    +- Glyph name: Amacron	Contours detected: 5	Expected: 3
    +
    +- Glyph name: amacron	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Abreve	Contours detected: 5	Expected: 3
    +
    +- Glyph name: abreve	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Aogonek	Contours detected: 4	Expected: 2 or 3
    +
    +- Glyph name: aogonek	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Cacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: cacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ccircumflex	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ccircumflex	Contours detected: 5	Expected: 2
    +
    +- Glyph name: Cdotaccent	Contours detected: 4	Expected: 2
    +
    +- Glyph name: cdotaccent	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ccaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ccaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Dcaron	Contours detected: 6	Expected: 3
    +
    +- Glyph name: dcaron	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Dcroat	Contours detected: 4	Expected: 2
    +
    +- Glyph name: dcroat	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Emacron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: emacron	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Ebreve	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ebreve	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Edotaccent	Contours detected: 4	Expected: 2
    +
    +- Glyph name: edotaccent	Contours detected: 6	Expected: 3
    +
    +- Glyph name: eogonek	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ecaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ecaron	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Gcircumflex	Contours detected: 4	Expected: 2
    +
    +- Glyph name: gcircumflex	Contours detected: 8	Expected: 3 or 4
    +
    +- Glyph name: Gbreve	Contours detected: 4	Expected: 2
    +
    +- Glyph name: gbreve	Contours detected: 7	Expected: 3 or 4
    +
    +- Glyph name: Gdotaccent	Contours detected: 4	Expected: 2
    +
    +- Glyph name: gdotaccent	Contours detected: 7	Expected: 3 or 4
    +
    +- Glyph name: uni0122	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0123	Contours detected: 7	Expected: 3 or 4
    +
    +- Glyph name: Hcircumflex	Contours detected: 4	Expected: 2
    +
    +- Glyph name: hcircumflex	Contours detected: 5	Expected: 2
    +
    +- Glyph name: Hbar	Contours detected: 4	Expected: 2
    +
    +- Glyph name: hbar	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Itilde	Contours detected: 4	Expected: 2
    +
    +- Glyph name: itilde	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Imacron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: imacron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ibreve	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ibreve	Contours detected: 4	Expected: 2
    +
    +- Glyph name: iogonek	Contours detected: 4	Expected: 2 or 3
    +
    +- Glyph name: Idotaccent	Contours detected: 4	Expected: 2
    +
    +- Glyph name: dotlessi	Contours detected: 2	Expected: 1
    +
    +- Glyph name: IJ	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: ij	Contours detected: 8	Expected: 3 or 4
    +
    +- Glyph name: Jcircumflex	Contours detected: 4	Expected: 2
    +
    +- Glyph name: jcircumflex	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni0136	Contours detected: 4	Expected: 2 or 3
    +
    +- Glyph name: uni0137	Contours detected: 4	Expected: 2 or 3
    +
    +- Glyph name: kgreenlandic	Contours detected: 3	Expected: 1 or 2
    +
    +- Glyph name: Lacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: lacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni013B	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni013C	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Lcaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: lcaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ldot	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ldot	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Lslash	Contours detected: 2	Expected: 1
    +
    +- Glyph name: lslash	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Nacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: nacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0145	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0146	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ncaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ncaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: napostrophe	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Eng	Contours detected: 2	Expected: 1
    +
    +- Glyph name: eng	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Omacron	Contours detected: 6	Expected: 3
    +
    +- Glyph name: omacron	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Obreve	Contours detected: 6	Expected: 3
    +
    +- Glyph name: obreve	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Ohungarumlaut	Contours detected: 8	Expected: 4
    +
    +- Glyph name: ohungarumlaut	Contours detected: 8	Expected: 4
    +
    +- Glyph name: OE	Contours detected: 4	Expected: 2
    +
    +- Glyph name: oe	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Racute	Contours detected: 6	Expected: 3
    +
    +- Glyph name: racute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0156	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0157	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Rcaron	Contours detected: 6	Expected: 3
    +
    +- Glyph name: rcaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Sacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: sacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Scircumflex	Contours detected: 4	Expected: 2
    +
    +- Glyph name: scircumflex	Contours detected: 5	Expected: 2
    +
    +- Glyph name: scedilla	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: Scaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: scaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Tcaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: tcaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Tbar	Contours detected: 2	Expected: 1
    +
    +- Glyph name: tbar	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Utilde	Contours detected: 4	Expected: 2
    +
    +- Glyph name: utilde	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Umacron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: umacron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ubreve	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ubreve	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Uring	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uring	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Uhungarumlaut	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uhungarumlaut	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Uogonek	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uogonek	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Wcircumflex	Contours detected: 4	Expected: 2
    +
    +- Glyph name: wcircumflex	Contours detected: 5	Expected: 2
    +
    +- Glyph name: Ycircumflex	Contours detected: 5	Expected: 2
    +
    +- Glyph name: ycircumflex	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ydieresis	Contours detected: 7	Expected: 3
    +
    +- Glyph name: Zacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: zacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Zdotaccent	Contours detected: 4	Expected: 2
    +
    +- Glyph name: zdotaccent	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Zcaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: zcaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: longs	Contours detected: 2	Expected: 1
    +
    +- Glyph name: florin	Contours detected: 2	Expected: 1
    +
    +- Glyph name: AEacute	Contours detected: 6	Expected: 3
    +
    +- Glyph name: aeacute	Contours detected: 8	Expected: 4
    +
    +- Glyph name: Oslashacute	Contours detected: 8	Expected: 4
    +
    +- Glyph name: oslashacute	Contours detected: 8	Expected: 4
    +
    +- Glyph name: uni0218	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0219	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni021A	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni021B	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0237	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni02BC	Contours detected: 2	Expected: 1
    +
    +- Glyph name: circumflex	Contours detected: 3	Expected: 1
    +
    +- Glyph name: caron	Contours detected: 2	Expected: 1
    +
    +- Glyph name: breve	Contours detected: 2	Expected: 1
    +
    +- Glyph name: dotaccent	Contours detected: 2	Expected: 1
    +
    +- Glyph name: ring	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ogonek	Contours detected: 2	Expected: 1
    +
    +- Glyph name: tilde	Contours detected: 2	Expected: 1
    +
    +- Glyph name: hungarumlaut	Contours detected: 4	Expected: 2
    +
    +- Glyph name: gravecomb	Contours detected: 2	Expected: 1
    +
    +- Glyph name: acutecomb	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0302	Contours detected: 3	Expected: 1
    +
    +- Glyph name: tildecomb	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0304	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0306	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0307	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0308	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni030A	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni030B	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni030C	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0312	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0326	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0327	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0328	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0335	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0337	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0338	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0400	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0401	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0402	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0403	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0404	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0405	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0406	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0407	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0408	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0409	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni040A	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni040B	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni040C	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni040D	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni040E	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni040F	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0410	Contours detected: 3	Expected: 2
    +
    +- Glyph name: uni0411	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0412	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0413	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0414	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0415	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0416	Contours detected: 4	Expected: 1
    +
    +- Glyph name: uni0417	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0418	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0419	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni041A	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni041B	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni041C	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni041D	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni041E	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni041F	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0420	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: uni0421	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0422	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0423	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0424	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0425	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0426	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0427	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0428	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0429	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni042A	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni042B	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni042C	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni042D	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni042E	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni042F	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0430	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0431	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0432	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0433	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0434	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0435	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0436	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0437	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0438	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0439	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni043A	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni043B	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni043C	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni043D	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni043E	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni043F	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0440	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0441	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0442	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0443	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0444	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0445	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0446	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0447	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0448	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0449	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni044A	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni044B	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni044C	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni044D	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni044E	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni044F	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0450	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0451	Contours detected: 8	Expected: 4
    +
    +- Glyph name: uni0452	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0453	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0454	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0455	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0456	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0457	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0458	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0459	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni045A	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni045B	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni045C	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni045D	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni045E	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0462	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0463	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni046A	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni046B	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0472	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0473	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0474	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0475	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0490	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0491	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0492	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0493	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0494	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0495	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0496	Contours detected: 3	Expected: 1 or 2
    +
    +- Glyph name: uni049C	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni049D	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04A0	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04A1	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04A4	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04A5	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Ustraitcy	Contours detected: 3	Expected: 1
    +
    +- Glyph name: ustraitcy	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Ustraitstrokecy	Contours detected: 2	Expected: 1
    +
    +- Glyph name: ustraitstrokecy	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni04B8	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04B9	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04BA	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04BB	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04C0	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04C1	Contours detected: 6	Expected: 2
    +
    +- Glyph name: uni04C2	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni04CF	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04D0	Contours detected: 5	Expected: 3
    +
    +- Glyph name: uni04D1	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04D2	Contours detected: 7	Expected: 4
    +
    +- Glyph name: uni04D3	Contours detected: 8	Expected: 4
    +
    +- Glyph name: uni04D4	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni04D5	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04D6	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni04D7	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04D8	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni04D9	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni04DC	Contours detected: 8	Expected: 3
    +
    +- Glyph name: uni04DD	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04DE	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04DF	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04E2	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni04E3	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni04E4	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04E5	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04E6	Contours detected: 8	Expected: 4
    +
    +- Glyph name: uni04E7	Contours detected: 8	Expected: 4
    +
    +- Glyph name: uni04E8	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04E9	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04EE	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni04EF	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni04F0	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04F1	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04F2	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04F3	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04F4	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04F5	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04F8	Contours detected: 10	Expected: 5
    +
    +- Glyph name: uni04F9	Contours detected: 10	Expected: 5
    +
    +- Glyph name: uni051A	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni051B	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni051C	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni051D	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0524	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0525	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Wgrave	Contours detected: 4	Expected: 2
    +
    +- Glyph name: wgrave	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Wacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: wacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Wdieresis	Contours detected: 6	Expected: 3
    +
    +- Glyph name: wdieresis	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni1E9E	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Ygrave	Contours detected: 5	Expected: 2
    +
    +- Glyph name: ygrave	Contours detected: 3	Expected: 2
    +
    +- Glyph name: endash	Contours detected: 2	Expected: 1
    +
    +- Glyph name: emdash	Contours detected: 2	Expected: 1
    +
    +- Glyph name: quoteleft	Contours detected: 2	Expected: 1
    +
    +- Glyph name: quoteright	Contours detected: 2	Expected: 1
    +
    +- Glyph name: quotesinglbase	Contours detected: 2	Expected: 1
    +
    +- Glyph name: quotedblleft	Contours detected: 4	Expected: 2
    +
    +- Glyph name: quotedblright	Contours detected: 4	Expected: 2
    +
    +- Glyph name: quotedblbase	Contours detected: 4	Expected: 2
    +
    +- Glyph name: daggerdbl	Contours detected: 2	Expected: 1 or 3
    +
    +- Glyph name: bullet	Contours detected: 2	Expected: 1
    +
    +- Glyph name: ellipsis	Contours detected: 6	Expected: 3
    +
    +- Glyph name: perthousand	Contours detected: 14	Expected: 6 or 7
    +
    +- Glyph name: guilsinglleft	Contours detected: 3	Expected: 1
    +
    +- Glyph name: guilsinglright	Contours detected: 2	Expected: 1
    +
    +- Glyph name: fraction	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni2070	Contours detected: 4	Expected: 2 or 3
    +
    +- Glyph name: uni2074	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: uni2075	Contours detected: 4	Expected: 1
    +
    +- Glyph name: uni2076	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni2077	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni2078	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni2079	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni207D	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni207E	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni2080	Contours detected: 4	Expected: 2 or 3
    +
    +- Glyph name: uni2081	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni2082	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni2083	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni2084	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: uni2085	Contours detected: 4	Expected: 1
    +
    +- Glyph name: uni2086	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni2087	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni2088	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni2089	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni208D	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni208E	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni20AA	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni20AE	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni20B8	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni20B9	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni20BD	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni2116	Contours detected: 8	Expected: 3 or 4
    +
    +- Glyph name: trademark	Contours detected: 4	Expected: 2
    +
    +- Glyph name: estimated	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni2153	Contours detected: 8	Expected: 3
    +
    +- Glyph name: uni2154	Contours detected: 8	Expected: 1 or 3
    +
    +- Glyph name: oneeighth	Contours detected: 11	Expected: 5
    +
    +- Glyph name: threeeighths	Contours detected: 12	Expected: 5
    +
    +- Glyph name: fiveeighths	Contours detected: 13	Expected: 5
    +
    +- Glyph name: seveneighths	Contours detected: 11	Expected: 5
    +
    +- Glyph name: partialdiff	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni2206	Contours detected: 4	Expected: 2
    +
    +- Glyph name: product	Contours detected: 2	Expected: 1
    +
    +- Glyph name: summation	Contours detected: 2	Expected: 1
    +
    +- Glyph name: minus	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni2215	Contours detected: 2	Expected: 1
    +
    +- Glyph name: radical	Contours detected: 2	Expected: 1
    +
    +- Glyph name: infinity	Contours detected: 6	Expected: 3
    +
    +- Glyph name: integral	Contours detected: 2	Expected: 1
    +
    +- Glyph name: approxequal	Contours detected: 4	Expected: 2
    +
    +- Glyph name: notequal	Contours detected: 2	Expected: 1
    +
    +- Glyph name: lessequal	Contours detected: 4	Expected: 2
    +
    +- Glyph name: greaterequal	Contours detected: 4	Expected: 2
    +
    +- Glyph name: lozenge	Contours detected: 4	Expected: 2
    +
    +- Glyph name: A	Contours detected: 3	Expected: 2
    +
    +- Glyph name: AE	Contours detected: 4	Expected: 2
    +
    +- Glyph name: AEacute	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Aacute	Contours detected: 5	Expected: 3
    +
    +- Glyph name: Abreve	Contours detected: 5	Expected: 3
    +
    +- Glyph name: Acircumflex	Contours detected: 5	Expected: 3
    +
    +- Glyph name: Adieresis	Contours detected: 7	Expected: 4
    +
    +- Glyph name: Agrave	Contours detected: 5	Expected: 3
    +
    +- Glyph name: Amacron	Contours detected: 5	Expected: 3
    +
    +- Glyph name: Aogonek	Contours detected: 4	Expected: 2 or 3
    +
    +- Glyph name: Aring	Contours detected: 7	Expected: 3 or 4
    +
    +- Glyph name: Atilde	Contours detected: 5	Expected: 3
    +
    +- Glyph name: B	Contours detected: 6	Expected: 2 or 3
    +
    +- Glyph name: C	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Cacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ccaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ccircumflex	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Cdotaccent	Contours detected: 4	Expected: 2
    +
    +- Glyph name: D	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Dcaron	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Dcroat	Contours detected: 4	Expected: 2
    +
    +- Glyph name: E	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Eacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ebreve	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ecaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ecircumflex	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Edieresis	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Edotaccent	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Egrave	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Emacron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Eng	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Eth	Contours detected: 4	Expected: 2
    +
    +- Glyph name: F	Contours detected: 2	Expected: 1
    +
    +- Glyph name: G	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Gbreve	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Gcircumflex	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Gdotaccent	Contours detected: 4	Expected: 2
    +
    +- Glyph name: H	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Hbar	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Hcircumflex	Contours detected: 4	Expected: 2
    +
    +- Glyph name: I	Contours detected: 2	Expected: 1
    +
    +- Glyph name: IJ	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: Iacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ibreve	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Icircumflex	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Idieresis	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Idotaccent	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Igrave	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Imacron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Itilde	Contours detected: 4	Expected: 2
    +
    +- Glyph name: J	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Jcircumflex	Contours detected: 4	Expected: 2
    +
    +- Glyph name: L	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Lacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Lcaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ldot	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Lslash	Contours detected: 2	Expected: 1
    +
    +- Glyph name: M	Contours detected: 2	Expected: 1
    +
    +- Glyph name: N	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Nacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ncaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ntilde	Contours detected: 4	Expected: 2
    +
    +- Glyph name: O	Contours detected: 4	Expected: 2
    +
    +- Glyph name: OE	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Oacute	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Ocircumflex	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Odieresis	Contours detected: 8	Expected: 4
    +
    +- Glyph name: Ograve	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Ohungarumlaut	Contours detected: 8	Expected: 4
    +
    +- Glyph name: Omacron	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Oslash	Contours detected: 6	Expected: 2 or 3
    +
    +- Glyph name: Oslashacute	Contours detected: 8	Expected: 4
    +
    +- Glyph name: Otilde	Contours detected: 6	Expected: 3
    +
    +- Glyph name: P	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: Q	Contours detected: 4	Expected: 2
    +
    +- Glyph name: R	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: Racute	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Rcaron	Contours detected: 6	Expected: 3
    +
    +- Glyph name: S	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Sacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Scaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Scircumflex	Contours detected: 4	Expected: 2
    +
    +- Glyph name: T	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Tbar	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Tcaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Thorn	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: U	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Uacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ubreve	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Ucircumflex	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Udieresis	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Ugrave	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Uhungarumlaut	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Umacron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Uogonek	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Uring	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Utilde	Contours detected: 4	Expected: 2
    +
    +- Glyph name: V	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Wacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Wcircumflex	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Wdieresis	Contours detected: 6	Expected: 3
    +
    +- Glyph name: Wgrave	Contours detected: 4	Expected: 2
    +
    +- Glyph name: X	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Y	Contours detected: 3	Expected: 1
    +
    +- Glyph name: Yacute	Contours detected: 5	Expected: 2
    +
    +- Glyph name: Ycircumflex	Contours detected: 5	Expected: 2
    +
    +- Glyph name: Ydieresis	Contours detected: 7	Expected: 3
    +
    +- Glyph name: Ygrave	Contours detected: 5	Expected: 2
    +
    +- Glyph name: Z	Contours detected: 2	Expected: 1
    +
    +- Glyph name: Zacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Zcaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: Zdotaccent	Contours detected: 4	Expected: 2
    +
    +- Glyph name: a	Contours detected: 4	Expected: 2
    +
    +- Glyph name: aacute	Contours detected: 6	Expected: 3
    +
    +- Glyph name: abreve	Contours detected: 6	Expected: 3
    +
    +- Glyph name: acircumflex	Contours detected: 7	Expected: 3
    +
    +- Glyph name: acute	Contours detected: 2	Expected: 1
    +
    +- Glyph name: adieresis	Contours detected: 8	Expected: 4
    +
    +- Glyph name: ae	Contours detected: 6	Expected: 3
    +
    +- Glyph name: aeacute	Contours detected: 8	Expected: 4
    +
    +- Glyph name: agrave	Contours detected: 6	Expected: 3
    +
    +- Glyph name: amacron	Contours detected: 6	Expected: 3
    +
    +- Glyph name: ampersand	Contours detected: 6	Expected: 1, 2 or 3
    +
    +- Glyph name: aogonek	Contours detected: 4	Expected: 2
    +
    +- Glyph name: approxequal	Contours detected: 4	Expected: 2
    +
    +- Glyph name: aring	Contours detected: 8	Expected: 4
    +
    +- Glyph name: asciicircum	Contours detected: 2	Expected: 1
    +
    +- Glyph name: asciitilde	Contours detected: 2	Expected: 1
    +
    +- Glyph name: asterisk	Contours detected: 2	Expected: 1 or 4
    +
    +- Glyph name: at	Contours detected: 4	Expected: 2
    +
    +- Glyph name: atilde	Contours detected: 6	Expected: 3
    +
    +- Glyph name: b	Contours detected: 4	Expected: 2
    +
    +- Glyph name: backslash	Contours detected: 2	Expected: 1
    +
    +- Glyph name: bar	Contours detected: 2	Expected: 1
    +
    +- Glyph name: braceleft	Contours detected: 2	Expected: 1
    +
    +- Glyph name: braceright	Contours detected: 2	Expected: 1
    +
    +- Glyph name: bracketleft	Contours detected: 2	Expected: 1
    +
    +- Glyph name: bracketright	Contours detected: 2	Expected: 1
    +
    +- Glyph name: breve	Contours detected: 2	Expected: 1
    +
    +- Glyph name: brokenbar	Contours detected: 4	Expected: 2
    +
    +- Glyph name: bullet	Contours detected: 2	Expected: 1
    +
    +- Glyph name: c	Contours detected: 2	Expected: 1
    +
    +- Glyph name: cacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: caron	Contours detected: 2	Expected: 1
    +
    +- Glyph name: ccaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ccircumflex	Contours detected: 5	Expected: 2
    +
    +- Glyph name: cdotaccent	Contours detected: 4	Expected: 2
    +
    +- Glyph name: cedilla	Contours detected: 2	Expected: 1
    +
    +- Glyph name: circumflex	Contours detected: 3	Expected: 1
    +
    +- Glyph name: colon	Contours detected: 4	Expected: 2
    +
    +- Glyph name: comma	Contours detected: 2	Expected: 1
    +
    +- Glyph name: copyright	Contours detected: 6	Expected: 3
    +
    +- Glyph name: currency	Contours detected: 4	Expected: 2
    +
    +- Glyph name: d	Contours detected: 4	Expected: 2
    +
    +- Glyph name: daggerdbl	Contours detected: 2	Expected: 1 or 3
    +
    +- Glyph name: dcaron	Contours detected: 6	Expected: 3
    +
    +- Glyph name: dcroat	Contours detected: 4	Expected: 2
    +
    +- Glyph name: degree	Contours detected: 4	Expected: 2
    +
    +- Glyph name: dieresis	Contours detected: 4	Expected: 2
    +
    +- Glyph name: divide	Contours detected: 4	Expected: 3
    +
    +- Glyph name: dotaccent	Contours detected: 2	Expected: 1
    +
    +- Glyph name: dotlessi	Contours detected: 2	Expected: 1
    +
    +- Glyph name: e	Contours detected: 4	Expected: 2
    +
    +- Glyph name: eacute	Contours detected: 6	Expected: 3
    +
    +- Glyph name: ebreve	Contours detected: 6	Expected: 3
    +
    +- Glyph name: ecaron	Contours detected: 6	Expected: 3
    +
    +- Glyph name: ecircumflex	Contours detected: 7	Expected: 3
    +
    +- Glyph name: edieresis	Contours detected: 8	Expected: 4
    +
    +- Glyph name: edotaccent	Contours detected: 6	Expected: 3
    +
    +- Glyph name: egrave	Contours detected: 6	Expected: 3
    +
    +- Glyph name: eight	Contours detected: 6	Expected: 3
    +
    +- Glyph name: ellipsis	Contours detected: 6	Expected: 3
    +
    +- Glyph name: emacron	Contours detected: 6	Expected: 3
    +
    +- Glyph name: emdash	Contours detected: 2	Expected: 1
    +
    +- Glyph name: endash	Contours detected: 2	Expected: 1
    +
    +- Glyph name: eng	Contours detected: 2	Expected: 1
    +
    +- Glyph name: eogonek	Contours detected: 4	Expected: 2
    +
    +- Glyph name: equal	Contours detected: 4	Expected: 2
    +
    +- Glyph name: estimated	Contours detected: 4	Expected: 2
    +
    +- Glyph name: eth	Contours detected: 4	Expected: 2
    +
    +- Glyph name: exclam	Contours detected: 4	Expected: 2
    +
    +- Glyph name: exclamdown	Contours detected: 4	Expected: 2
    +
    +- Glyph name: f	Contours detected: 2	Expected: 1
    +
    +- Glyph name: fi	Contours detected: 2	Expected: 3
    +
    +- Glyph name: five	Contours detected: 2	Expected: 1
    +
    +- Glyph name: fiveeighths	Contours detected: 13	Expected: 5
    +
    +- Glyph name: four	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: fraction	Contours detected: 3	Expected: 1
    +
    +- Glyph name: g	Contours detected: 5	Expected: 2 or 3
    +
    +- Glyph name: gbreve	Contours detected: 7	Expected: 3 or 4
    +
    +- Glyph name: gcircumflex	Contours detected: 8	Expected: 3 or 4
    +
    +- Glyph name: gdotaccent	Contours detected: 7	Expected: 3 or 4
    +
    +- Glyph name: germandbls	Contours detected: 2	Expected: 1
    +
    +- Glyph name: grave	Contours detected: 2	Expected: 1
    +
    +- Glyph name: greater	Contours detected: 2	Expected: 1
    +
    +- Glyph name: greaterequal	Contours detected: 4	Expected: 2
    +
    +- Glyph name: guillemotleft	Contours detected: 4	Expected: 2
    +
    +- Glyph name: guillemotright	Contours detected: 6	Expected: 2
    +
    +- Glyph name: guilsinglleft	Contours detected: 3	Expected: 1
    +
    +- Glyph name: guilsinglright	Contours detected: 2	Expected: 1
    +
    +- Glyph name: h	Contours detected: 2	Expected: 1
    +
    +- Glyph name: hbar	Contours detected: 2	Expected: 1
    +
    +- Glyph name: hcircumflex	Contours detected: 5	Expected: 2
    +
    +- Glyph name: hungarumlaut	Contours detected: 4	Expected: 2
    +
    +- Glyph name: hyphen	Contours detected: 2	Expected: 1
    +
    +- Glyph name: i	Contours detected: 4	Expected: 2
    +
    +- Glyph name: iacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ibreve	Contours detected: 4	Expected: 2
    +
    +- Glyph name: icircumflex	Contours detected: 5	Expected: 2
    +
    +- Glyph name: idieresis	Contours detected: 6	Expected: 3
    +
    +- Glyph name: igrave	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ij	Contours detected: 8	Expected: 3 or 4
    +
    +- Glyph name: imacron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: infinity	Contours detected: 6	Expected: 3
    +
    +- Glyph name: integral	Contours detected: 2	Expected: 1
    +
    +- Glyph name: iogonek	Contours detected: 4	Expected: 2 or 3
    +
    +- Glyph name: itilde	Contours detected: 4	Expected: 2
    +
    +- Glyph name: j	Contours detected: 4	Expected: 2
    +
    +- Glyph name: jcircumflex	Contours detected: 5	Expected: 2
    +
    +- Glyph name: kgreenlandic	Contours detected: 3	Expected: 1 or 2
    +
    +- Glyph name: l	Contours detected: 2	Expected: 1
    +
    +- Glyph name: lacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: lcaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ldot	Contours detected: 4	Expected: 2
    +
    +- Glyph name: less	Contours detected: 2	Expected: 1
    +
    +- Glyph name: lessequal	Contours detected: 4	Expected: 2
    +
    +- Glyph name: logicalnot	Contours detected: 2	Expected: 1
    +
    +- Glyph name: longs	Contours detected: 2	Expected: 1
    +
    +- Glyph name: lozenge	Contours detected: 4	Expected: 2
    +
    +- Glyph name: lslash	Contours detected: 2	Expected: 1
    +
    +- Glyph name: m	Contours detected: 2	Expected: 1
    +
    +- Glyph name: macron	Contours detected: 2	Expected: 1
    +
    +- Glyph name: minus	Contours detected: 2	Expected: 1
    +
    +- Glyph name: multiply	Contours detected: 2	Expected: 1
    +
    +- Glyph name: n	Contours detected: 2	Expected: 1
    +
    +- Glyph name: nacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: napostrophe	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ncaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: nine	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: notequal	Contours detected: 2	Expected: 1
    +
    +- Glyph name: ntilde	Contours detected: 4	Expected: 2
    +
    +- Glyph name: numbersign	Contours detected: 5	Expected: 2
    +
    +- Glyph name: o	Contours detected: 4	Expected: 2
    +
    +- Glyph name: oacute	Contours detected: 6	Expected: 3
    +
    +- Glyph name: ocircumflex	Contours detected: 7	Expected: 3
    +
    +- Glyph name: odieresis	Contours detected: 8	Expected: 4
    +
    +- Glyph name: oe	Contours detected: 6	Expected: 3
    +
    +- Glyph name: ogonek	Contours detected: 2	Expected: 1
    +
    +- Glyph name: ograve	Contours detected: 6	Expected: 3
    +
    +- Glyph name: ohungarumlaut	Contours detected: 8	Expected: 4
    +
    +- Glyph name: omacron	Contours detected: 6	Expected: 3
    +
    +- Glyph name: one	Contours detected: 2	Expected: 1
    +
    +- Glyph name: oneeighth	Contours detected: 11	Expected: 5
    +
    +- Glyph name: onehalf	Contours detected: 7	Expected: 3
    +
    +- Glyph name: onequarter	Contours detected: 9	Expected: 3 or 4
    +
    +- Glyph name: ordmasculine	Contours detected: 4	Expected: 2 or 3
    +
    +- Glyph name: oslash	Contours detected: 6	Expected: 3
    +
    +- Glyph name: oslashacute	Contours detected: 8	Expected: 4
    +
    +- Glyph name: otilde	Contours detected: 6	Expected: 3
    +
    +- Glyph name: p	Contours detected: 4	Expected: 2
    +
    +- Glyph name: parenleft	Contours detected: 2	Expected: 1
    +
    +- Glyph name: parenright	Contours detected: 2	Expected: 1
    +
    +- Glyph name: partialdiff	Contours detected: 4	Expected: 2
    +
    +- Glyph name: percent	Contours detected: 10	Expected: 5
    +
    +- Glyph name: period	Contours detected: 2	Expected: 1
    +
    +- Glyph name: periodcentered	Contours detected: 2	Expected: 1
    +
    +- Glyph name: perthousand	Contours detected: 14	Expected: 6 or 7
    +
    +- Glyph name: plus	Contours detected: 2	Expected: 1
    +
    +- Glyph name: plusminus	Contours detected: 3	Expected: 1 or 2
    +
    +- Glyph name: product	Contours detected: 2	Expected: 1
    +
    +- Glyph name: q	Contours detected: 4	Expected: 2
    +
    +- Glyph name: question	Contours detected: 4	Expected: 2
    +
    +- Glyph name: questiondown	Contours detected: 4	Expected: 2
    +
    +- Glyph name: quotedbl	Contours detected: 4	Expected: 2
    +
    +- Glyph name: quotedblbase	Contours detected: 4	Expected: 2
    +
    +- Glyph name: quotedblleft	Contours detected: 4	Expected: 2
    +
    +- Glyph name: quotedblright	Contours detected: 4	Expected: 2
    +
    +- Glyph name: quoteleft	Contours detected: 2	Expected: 1
    +
    +- Glyph name: quoteright	Contours detected: 2	Expected: 1
    +
    +- Glyph name: quotesinglbase	Contours detected: 2	Expected: 1
    +
    +- Glyph name: quotesingle	Contours detected: 2	Expected: 1
    +
    +- Glyph name: r	Contours detected: 2	Expected: 1
    +
    +- Glyph name: racute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: radical	Contours detected: 2	Expected: 1
    +
    +- Glyph name: rcaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: registered	Contours detected: 8	Expected: 3 or 4
    +
    +- Glyph name: ring	Contours detected: 4	Expected: 2
    +
    +- Glyph name: s	Contours detected: 2	Expected: 1
    +
    +- Glyph name: sacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: scaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: scircumflex	Contours detected: 5	Expected: 2
    +
    +- Glyph name: section	Contours detected: 4	Expected: 2
    +
    +- Glyph name: semicolon	Contours detected: 4	Expected: 2
    +
    +- Glyph name: seven	Contours detected: 2	Expected: 1
    +
    +- Glyph name: seveneighths	Contours detected: 11	Expected: 5
    +
    +- Glyph name: six	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: slash	Contours detected: 2	Expected: 1
    +
    +- Glyph name: summation	Contours detected: 2	Expected: 1
    +
    +- Glyph name: t	Contours detected: 2	Expected: 1
    +
    +- Glyph name: tbar	Contours detected: 2	Expected: 1
    +
    +- Glyph name: tcaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: thorn	Contours detected: 4	Expected: 2
    +
    +- Glyph name: three	Contours detected: 2	Expected: 1
    +
    +- Glyph name: threeeighths	Contours detected: 12	Expected: 5
    +
    +- Glyph name: threequarters	Contours detected: 10	Expected: 3 or 4
    +
    +- Glyph name: tilde	Contours detected: 2	Expected: 1
    +
    +- Glyph name: trademark	Contours detected: 4	Expected: 2
    +
    +- Glyph name: two	Contours detected: 2	Expected: 1
    +
    +- Glyph name: u	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ubreve	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ucircumflex	Contours detected: 5	Expected: 2
    +
    +- Glyph name: udieresis	Contours detected: 6	Expected: 3
    +
    +- Glyph name: ugrave	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uhungarumlaut	Contours detected: 6	Expected: 3
    +
    +- Glyph name: umacron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: underscore	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni00B5	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0122	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0123	Contours detected: 7	Expected: 3 or 4
    +
    +- Glyph name: uni0136	Contours detected: 4	Expected: 2 or 3
    +
    +- Glyph name: uni0137	Contours detected: 4	Expected: 2 or 3
    +
    +- Glyph name: uni013B	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni013C	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0145	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0146	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0156	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0157	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0218	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0219	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni021A	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni021B	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0237	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni02BC	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0302	Contours detected: 3	Expected: 1
    +
    +- Glyph name: uni0304	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0306	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0307	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0308	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni030A	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni030B	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni030C	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0312	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0326	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0327	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0328	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0335	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0337	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0338	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0400	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0401	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0402	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0403	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0404	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0405	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0406	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0407	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0408	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0409	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni040A	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni040B	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni040C	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni040D	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni040E	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni040F	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0410	Contours detected: 3	Expected: 2
    +
    +- Glyph name: uni0411	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0412	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0413	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0414	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0415	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0416	Contours detected: 4	Expected: 1
    +
    +- Glyph name: uni0417	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0418	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0419	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni041A	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni041B	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni041C	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni041D	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni041E	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni041F	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0420	Contours detected: 4	Expected: 1 or 2
    +
    +- Glyph name: uni0421	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0422	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0423	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0424	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0425	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0426	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0427	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0428	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0429	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni042A	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni042B	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni042C	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni042D	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni042E	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni042F	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0430	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0431	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0432	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0433	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0434	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0435	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0436	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0437	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0438	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0439	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni043A	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni043B	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni043C	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni043D	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni043E	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni043F	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0440	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0441	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0442	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0443	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0444	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0445	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0446	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0447	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0448	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0449	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni044A	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni044B	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni044C	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni044D	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni044E	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni044F	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0450	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0451	Contours detected: 8	Expected: 4
    +
    +- Glyph name: uni0452	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0453	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0454	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0455	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0456	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0457	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0458	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0459	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni045A	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni045B	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni045C	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni045D	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni045E	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0462	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0463	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni046A	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni046B	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni0472	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0473	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni0474	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0475	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0490	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0491	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0492	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0493	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0494	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0495	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0496	Contours detected: 3	Expected: 1 or 2
    +
    +- Glyph name: uni049C	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni049D	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04A0	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04A1	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04A4	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04A5	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04B8	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04B9	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04BA	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04BB	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04C0	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04C1	Contours detected: 6	Expected: 2
    +
    +- Glyph name: uni04C2	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni04CF	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni04D0	Contours detected: 5	Expected: 3
    +
    +- Glyph name: uni04D1	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04D2	Contours detected: 7	Expected: 4
    +
    +- Glyph name: uni04D3	Contours detected: 8	Expected: 4
    +
    +- Glyph name: uni04D4	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni04D5	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04D6	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni04D7	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04D8	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni04D9	Contours detected: 5	Expected: 2
    +
    +- Glyph name: uni04DC	Contours detected: 8	Expected: 3
    +
    +- Glyph name: uni04DD	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04DE	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04DF	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04E2	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni04E3	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni04E4	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04E5	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04E6	Contours detected: 8	Expected: 4
    +
    +- Glyph name: uni04E7	Contours detected: 8	Expected: 4
    +
    +- Glyph name: uni04E8	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04E9	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04EE	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni04EF	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni04F0	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04F1	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04F2	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04F3	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04F4	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04F5	Contours detected: 6	Expected: 3
    +
    +- Glyph name: uni04F8	Contours detected: 10	Expected: 5
    +
    +- Glyph name: uni04F9	Contours detected: 10	Expected: 5
    +
    +- Glyph name: uni051A	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni051B	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni051C	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni051D	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0524	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni0525	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni1E9E	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni20AA	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni20AE	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni20B8	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni20B9	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uni20BD	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni2116	Contours detected: 8	Expected: 3 or 4
    +
    +- Glyph name: uni2206	Contours detected: 4	Expected: 2
    +
    +- Glyph name: uni2215	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uogonek	Contours detected: 2	Expected: 1
    +
    +- Glyph name: uring	Contours detected: 6	Expected: 3
    +
    +- Glyph name: utilde	Contours detected: 4	Expected: 2
    +
    +- Glyph name: v	Contours detected: 2	Expected: 1
    +
    +- Glyph name: w	Contours detected: 2	Expected: 1
    +
    +- Glyph name: wacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: wcircumflex	Contours detected: 5	Expected: 2
    +
    +- Glyph name: wdieresis	Contours detected: 6	Expected: 3
    +
    +- Glyph name: wgrave	Contours detected: 4	Expected: 2
    +
    +- Glyph name: x	Contours detected: 2	Expected: 1
    +
    +- Glyph name: yacute	Contours detected: 3	Expected: 2
    +
    +- Glyph name: ycircumflex	Contours detected: 4	Expected: 2
    +
    +- Glyph name: ydieresis	Contours detected: 5	Expected: 3
    +
    +- Glyph name: ygrave	Contours detected: 3	Expected: 2
    +
    +- Glyph name: z	Contours detected: 2	Expected: 1
    +
    +- Glyph name: zacute	Contours detected: 4	Expected: 2
    +
    +- Glyph name: zcaron	Contours detected: 4	Expected: 2
    +
    +- Glyph name: zdotaccent	Contours detected: 4	Expected: 2
    +
    +- Glyph name: zero	Contours detected: 4	Expected: 2 or 3
    +
    +

    [code: contour-count]

    +
+

Check math signs have the same width.

+
Check ID: com.google.fonts/check/math_signs_width
+ +
⚠️ RubikScribble-Regular.ttf
  • ⚠️ WARN

    The most common width is 538 among a set of 2 math glyphs. +The following math glyphs have a different width, though:

    +

    Width = 594: +plus

    +

    Width = 563: +equal

    +

    Width = 564: +logicalnot

    +

    Width = 576: +plusminus

    +

    Width = 639: +multiply

    +

    Width = 517: +divide

    +

    Width = 642: +minus

    +

    Width = 551: +approxequal, notequal

    +

    Width = 556: +lessequal, greaterequal +[code: width-outliers]

    +
+

Section: Shaping Checks

+⚠️⚠️⏩⏩⏩ +

Ensure dotted circle glyph is present and can attach marks.

+
Check ID: com.google.fonts/check/dotted_circle
+ +
⚠️ RubikScribble-Regular.ttf
  • ⚠️ WARN

    No dotted circle glyph present [code: missing-dotted-circle]

    +
+

Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.

+
Check ID: com.google.fonts/check/soft_dotted
+ +
⚠️ RubikScribble-Regular.ttf
  • ⚠️ WARN

    The dot of soft dotted characters used in orthographies must disappear in the following strings: į̀ į́ į̂ į̃ į̄ į̌ і́

    +

    The dot of soft dotted characters should disappear in other cases, for example: i̦̒ j̦̒ į̆ į̇ į̈ į̊ į̋ į̒ į̦̒ į̧̒ į̨̒ į̵̀ į̵́ į̵̂ į̵̃ į̵̄ į̵̆ į̵̇ į̵̈ į̵̊

    +

    Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers), Dutch (Latn, 31,709,104 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Belarusian (Cyrl, 10,064,517 speakers).

    +

    Your font does not cover the following languages that require the soft-dotted feature: Sar (Latn, 500,000 speakers), Nateni (Latn, 100,000 speakers), Dan (Latn, 1,099,244 speakers), Aghem (Latn, 38,843 speakers), Ma’di (Latn, 584,000 speakers), Mango (Latn, 77,000 speakers), Gulay (Latn, 250,478 speakers), Igbo (Latn, 27,823,640 speakers), Ebira (Latn, 2,200,000 speakers), Lugbara (Latn, 2,200,000 speakers), Kom (Latn, 360,685 speakers), Avokaya (Latn, 100,000 speakers), Basaa (Latn, 332,940 speakers), Koonzime (Latn, 40,000 speakers), Ejagham (Latn, 120,000 speakers), Navajo (Latn, 166,319 speakers). [code: soft-dotted]

    +
+
+ + \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikscribble-report.json b/docs/fontbakery-reports/rubikscribble-report.json new file mode 100644 index 0000000..6240fa0 --- /dev/null +++ b/docs/fontbakery-reports/rubikscribble-report.json @@ -0,0 +1 @@ +{"result": {"FAIL": 4, "INFO": 9, "PASS": 161, "SKIP": 64, "WARN": 9}, "sections": [{"checks": [{"description": "Fonts have equal codepoint coverage", "experimental": "Since 2023/Oct/13", "key": ["", "", []], "logs": [{"message": "All font files in this family have an equivalent encoded glyphset.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Ensure that all variable font files have the same set of axes and axis ranges.", "key": ["", "", []], "logs": [{"message": "Unfulfilled Conditions: VFs", "status": "SKIP", "traceback": null}], "rationale": "\n In order to facilitate the construction of intuitive and friendly user\n interfaces, all variable font files in a given family should have the same set\n of variation axes. Also, each axis must have a consistent setting of min/max\n value ranges accross all the files.\n ", "result": "SKIP"}, {"description": "All tabular figures must have the same width across the RIBBI-family.", "key": ["", "", []], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Tabular figures need to have the same metrics in all styles in order to allow\n tables to be set with proper typographic control, but to maintain the placement\n of decimals and numeric columns between rows.\n\n Here's a good explanation of this:\n https://www.typography.com/techniques/fonts-for-financials/#tabular-figs\n ", "result": "PASS"}, {"description": "Does font file include unacceptable control character glyphs?", "key": ["", "", []], "logs": [{"message": "Unacceptable control characters were not identified.", "status": "PASS", "traceback": null}], "rationale": "\n Use of some unacceptable control characters in the U+0000 - U+001F range can\n lead to rendering issues on some platforms.\n\n Acceptable control characters are defined as .null (U+0000) and\n CR (U+000D) for this test.\n ", "result": "PASS"}, {"description": "Ensure Italic styles have Roman counterparts.", "key": ["", "", []], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n For each font family on Google Fonts, every Italic style must have\n a Roman sibling.\n\n This kind of problem was first observed at [1] where the Bold style was\n missing but BoldItalic was included.\n\n [1] https://github.com/google/fonts/pull/1482\n ", "result": "PASS"}, {"description": "Check axis ordering on the STAT table.", "key": ["", "", []], "logs": [{"message": "This font does not have a STAT table: /home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf [code: missing-STAT]", "status": "SKIP", "traceback": null}, {"message": "From a total of 1 font files, 1 of them (100.00%) lack a STAT table.\n\n\tAnd these are the most common STAT axis orderings:\n\t [code: summary]", "status": "INFO", "traceback": null}], "rationale": "\n This is (for now) a merely informative check to detect what's the axis ordering\n declared on the STAT table of fonts in the Google Fonts collection.\n\n We may later update this to enforce some unified axis ordering scheme,\n yet to be determined.\n ", "result": "INFO"}, {"description": "Check README.md has a sample image.", "key": ["", "", []], "logs": [{"message": "Unfulfilled Conditions: readme_contents, readme_directory", "status": "SKIP", "traceback": null}], "rationale": "\n In order to showcase what a font family looks like, the project's README.md\n file should ideally include a sample image and highlight it in the upper\n portion of the document, no more than 10 lines away from the top of the file.\n ", "result": "SKIP"}, {"description": "Checking file is named canonically.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font filename is correct, \"RubikScribble-Regular.ttf\".", "status": "PASS", "traceback": null}], "rationale": "\n A font's filename must be composed as \"-.ttf\":\n\n - Nunito-Regular.ttf\n\n - Oswald-BoldItalic.ttf\n\n\n Variable fonts must list the axis tags in alphabetical order in\n square brackets and separated by commas:\n\n - Roboto[wdth,wght].ttf\n\n - Familyname-Italic[wght].ttf\n ", "result": "PASS"}, {"description": "Does DESCRIPTION file contain broken links?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All links in the DESCRIPTION file look good!", "status": "PASS", "traceback": null}], "rationale": "\n The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font\n family webpage on the Google Fonts website. For that reason, all hyperlinks\n in it must be properly working.\n ", "result": "PASS"}, {"description": "URLs on DESCRIPTION file must not display http(s) prefix.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All good!", "status": "PASS", "traceback": null}], "rationale": "\n The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font\n family webpage on the Google Fonts website.\n\n Google Fonts has a content formatting policy for that snippet that expects the\n text content of anchors not to include the http:// or https:// prefixes.\n ", "result": "PASS"}, {"description": "Does DESCRIPTION file contain a upstream Git repo URL?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Found a git repo URL: https://github.com/NaN-xyz/Glyph-Filters [code: url-found]", "status": "INFO", "traceback": null}, {"message": "Found a git repo URL: https://github.com/NaN-xyz/Rubik-Filtered [code: url-found]", "status": "INFO", "traceback": null}, {"message": "Looks great!", "status": "PASS", "traceback": null}], "rationale": "\n The contents of the DESCRIPTION.en-us.html file are displayed on the\n Google Fonts website in the about section of each font family specimen page.\n\n Since all of the Google Fonts collection is composed of libre-licensed fonts,\n this check enforces a policy that there must be a hypertext link in that page\n directing users to the repository where the font project files are\n made available.\n\n Such hosting is typically done on sites like Github, Gitlab, GNU Savannah or\n any other git-based version control service.\n ", "result": "INFO"}, {"description": "Is this a proper HTML snippet?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/DESCRIPTION.en_us.html is a propper HTML file.", "status": "PASS", "traceback": null}], "rationale": "\n Sometimes people write malformed HTML markup. This check should ensure the\n file is good.\n\n Additionally, when packaging families for being pushed to the `google/fonts`\n git repo, if there is no DESCRIPTION.en_us.html file, some older versions of\n the `add_font.py` tool insert a placeholder description file which contains\n invalid html. This file needs to either be replaced with an existing\n description file or edited by hand.\n ", "result": "PASS"}, {"description": "DESCRIPTION.en_us.html must have more than 200 bytes.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "DESCRIPTION.en_us.html is larger than 200 bytes.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "DESCRIPTION.en_us.html should end in a linebreak.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": ":-)", "status": "PASS", "traceback": null}], "rationale": "\n Some older text-handling tools sometimes misbehave if the last line of data\n in a text file is not terminated with a newline character (also known as '\\n').\n\n We know that this is a very small detail, but for the sake of keeping all\n DESCRIPTION.en_us.html files uniformly formatted throughout the GFonts\n collection, we chose to adopt the practice of placing this final linebreak\n character on them.\n ", "result": "PASS"}, {"description": "Check METADATA.pb parse correctly.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb parsed successfuly.", "status": "PASS", "traceback": null}], "rationale": "\n The purpose of this check is to ensure that the METADATA.pb file is not\n malformed.\n ", "result": "PASS"}, {"description": "Font designer field in METADATA.pb must not be 'unknown'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font designer field is not 'unknown'.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font designer field in METADATA.pb must not contain 'Multiple designers'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good.", "status": "PASS", "traceback": null}], "rationale": "\n For a while the string \"Multiple designers\" was used as a placeholder on\n METADATA.pb files. We should replace all those instances with actual designer\n names so that proper credits are displayed on the Google Fonts family\n specimen pages.\n\n If there's more than a single designer, the designer names must be\n separated by commas.\n ", "result": "PASS"}, {"description": "Multiple values in font designer field in METADATA.pb must be separated by commas.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good.", "status": "PASS", "traceback": null}], "rationale": "\n We must use commas instead of forward slashes because the server-side code\n at the fonts.google.com directory will segment the string on the commas into\n a list of names and display the first item in the list as the\n \"principal designer\" while the remaining names are identified as \"contributors\".\n\n See eg https://fonts.google.com/specimen/Rubik\n ", "result": "PASS"}, {"description": "Does METADATA.pb copyright field contain broken links?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All links in the METADATA.pb file look good!", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Ensure METADATA.pb lists all font binaries.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n The set of font binaries available, except the ones on a \"static\" subdir,\n must match exactly those declared on the METADATA.pb file.\n\n Also, to avoid confusion, we expect that font files (other than statics)\n are not placed on subdirectories.\n ", "result": "PASS"}, {"description": "Ensure METADATA.pb category field is valid.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK!", "status": "PASS", "traceback": null}], "rationale": "\n There are only five acceptable values for the category field in a METADATA.pb\n file:\n\n - MONOSPACE\n\n - SANS_SERIF\n\n - SERIF\n\n - DISPLAY\n\n - HANDWRITING\n\n This check is meant to avoid typos in this field.\n ", "result": "PASS"}, {"description": "Checking OS/2 fsType does not impose restrictions.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 fsType is properly set to zero.", "status": "PASS", "traceback": null}], "rationale": "\n The fsType in the OS/2 table is a legacy DRM-related field. Fonts in the\n Google Fonts collection must have it set to zero (also known as\n \"Installable Embedding\"). This setting indicates that the fonts can be\n embedded in documents and permanently installed by applications on\n remote systems.\n\n More detailed info is available at:\n https://docs.microsoft.com/en-us/typography/opentype/spec/os2#fstype\n ", "result": "PASS"}, {"description": "Checking OS/2 achVendID.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx\n [code: unknown]", "status": "WARN", "traceback": null}], "rationale": "\n Microsoft keeps a list of font vendors and their respective contact info. This\n list is updated regularly and is indexed by a 4-char \"Vendor ID\" which is\n stored in the achVendID field of the OS/2 table.\n\n Registering your ID is not mandatory, but it is a good practice since some\n applications may display the type designer / type foundry contact info on some\n dialog and also because that info will be visible on Microsoft's website:\n\n https://docs.microsoft.com/en-us/typography/vendors/\n\n This check verifies whether or not a given font's vendor ID is registered in\n that list or if it has some of the default values used by the most common\n font editors.\n\n Each new FontBakery release includes a cached copy of that list of vendor IDs.\n If you registered recently, you're safe to ignore warnings emitted by this\n check, since your ID will soon be included in one of our upcoming releases.\n ", "result": "WARN"}, {"description": "Check Google Fonts glyph coverage.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Google Fonts expects that fonts in its collection support at least the minimal\n set of characters defined in the `GF-latin-core` glyph-set.\n ", "result": "PASS"}, {"description": "Check for METADATA subsets with zero support.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n This check ensures that the subsets specified on a METADATA.pb file are\n actually supported (even if only partially) by the font files.\n\n Subsets for which none of the codepoints are supported will cause the\n check to FAIL.\n ", "result": "PASS", "severity": 10}, {"description": "Check for codepoints not covered by METADATA subsets.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The following codepoints supported by the font are not covered by\n any subsets defined in the font's metadata file, and will never\n be served. You can solve this by either manually adding additional\n subset declarations to METADATA.pb, or by editing the glyphset\n definitions.\n\n * U+02C7 CARON: try adding one of: yi, tifinagh, canadian-aboriginal\n * U+02D8 BREVE: try adding one of: yi, canadian-aboriginal\n * U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal\n * U+02DB OGONEK: try adding one of: yi, canadian-aboriginal\n * U+02DD DOUBLE ACUTE ACCENT: not included in any glyphset definition\n * U+0306 COMBINING BREVE: try adding one of: old-permic, tifinagh\n * U+030A COMBINING RING ABOVE: try adding syriac\n * U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage\n * U+030C COMBINING CARON: try adding one of: tai-le, cherokee\n * U+0312 COMBINING TURNED COMMA ABOVE: not included in any glyphset definition\n * U+0326 COMBINING COMMA BELOW: not included in any glyphset definition\n * U+0327 COMBINING CEDILLA: not included in any glyphset definition\n * U+0328 COMBINING OGONEK: not included in any glyphset definition\n * U+0335 COMBINING SHORT STROKE OVERLAY: not included in any glyphset definition\n * U+0337 COMBINING SHORT SOLIDUS OVERLAY: not included in any glyphset definition\n * U+0338 COMBINING LONG SOLIDUS OVERLAY: not included in any glyphset definition\n * U+2021 DOUBLE DAGGER: try adding adlam\n * U+2030 PER MILLE SIGN: try adding adlam\n * U+2070 SUPERSCRIPT ZERO: not included in any glyphset definition\n * U+2075 SUPERSCRIPT FIVE: not included in any glyphset definition\n * U+2076 SUPERSCRIPT SIX: not included in any glyphset definition\n * U+2077 SUPERSCRIPT SEVEN: not included in any glyphset definition\n * U+2078 SUPERSCRIPT EIGHT: not included in any glyphset definition\n * U+2079 SUPERSCRIPT NINE: not included in any glyphset definition\n * U+207D SUPERSCRIPT LEFT PARENTHESIS: not included in any glyphset definition\n * U+207E SUPERSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition\n * U+2080 SUBSCRIPT ZERO: not included in any glyphset definition\n * U+2081 SUBSCRIPT ONE: not included in any glyphset definition\n * U+2082 SUBSCRIPT TWO: not included in any glyphset definition\n * U+2083 SUBSCRIPT THREE: not included in any glyphset definition\n * U+2084 SUBSCRIPT FOUR: not included in any glyphset definition\n * U+2085 SUBSCRIPT FIVE: not included in any glyphset definition\n * U+2086 SUBSCRIPT SIX: not included in any glyphset definition\n * U+2087 SUBSCRIPT SEVEN: not included in any glyphset definition\n * U+2088 SUBSCRIPT EIGHT: not included in any glyphset definition\n * U+2089 SUBSCRIPT NINE: not included in any glyphset definition\n * U+208D SUBSCRIPT LEFT PARENTHESIS: not included in any glyphset definition\n * U+208E SUBSCRIPT RIGHT PARENTHESIS: not included in any glyphset definition\n * U+212E ESTIMATED SYMBOL: not included in any glyphset definition\n * U+2153 VULGAR FRACTION ONE THIRD: not included in any glyphset definition\n * U+2154 VULGAR FRACTION TWO THIRDS: not included in any glyphset definition\n * U+215B VULGAR FRACTION ONE EIGHTH: not included in any glyphset definition\n * U+215C VULGAR FRACTION THREE EIGHTHS: not included in any glyphset definition\n * U+215D VULGAR FRACTION FIVE EIGHTHS: not included in any glyphset definition\n * U+215E VULGAR FRACTION SEVEN EIGHTHS: not included in any glyphset definition\n * U+FB01 LATIN SMALL LIGATURE FI: not included in any glyphset definition\n * U+FB02 LATIN SMALL LIGATURE FL: not included in any glyphset definition\n\nOr you can add the above codepoints to one of the subsets supported by the font: `cyrillic`, `cyrillic-ext`, `hebrew`, `latin`, `latin-ext`, `math`, `menu`, `symbols` [code: unreachable-subsetting]", "status": "WARN", "traceback": null}], "rationale": "\n This check ensures that all encoded glyphs in the font are covered by a\n subset declared in the METADATA.pb. Google Fonts splits the font into\n a set of subset fonts based on the contents of the `subsets` field and\n the subset definitions in the `glyphsets` repository.\n\n Any encoded glyphs which are not by any of these subset definitions\n will not be served in the subsetted fonts, and so will be unreachable to\n the end user.\n ", "result": "WARN", "severity": 2}, {"description": "Substitute copyright, registered and trademark symbols in name table entries.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No need to substitute copyright, registered and trademark symbols in name table entries of this font.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check the OS/2 usWeightClass is appropriate for the font's best SubFamily name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 usWeightClass is good", "status": "PASS", "traceback": null}], "rationale": "\n Google Fonts expects variable fonts, static ttfs and static otfs to have\n differing OS/2 usWeightClass values.\n\n - For Variable Fonts, Thin-Black must be 100-900\n\n - For static ttfs, Thin-Black can be 100-900 or 250-900\n\n - For static otfs, Thin-Black must be 250-900\n\n If static otfs are set lower than 250, text may appear blurry in\n legacy Windows applications.\n\n Glyphsapp users can change the usWeightClass value of an instance by adding\n a 'weightClass' customParameter.\n ", "result": "PASS"}, {"description": "Check font has a license.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Found license at '/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/OFL.txt'", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check license file has good copyright string.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "looks good", "status": "PASS", "traceback": null}], "rationale": "\n An OFL.txt file's first line should be the font copyright e.g:\n \"Copyright 2019 The Montserrat Project Authors\n (https://github.com/julietaula/montserrat)\"\n ", "result": "PASS", "severity": 10}, {"description": "Check OFL body text is correct.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OFL license body text is correct", "status": "PASS", "traceback": null}], "rationale": "\n Check OFL body text is correct.\n Often users will accidently delete parts of the body text.\n ", "result": "PASS", "severity": 10}, {"description": "Check copyright namerecords match license file.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Licensing entry on name table is correctly set.", "status": "PASS", "traceback": null}], "rationale": "\n A known licensing description must be provided in the NameID 14\n (LICENSE DESCRIPTION) entries of the name table.\n\n The source of truth for this check (to determine which license is in use) is\n a file placed side-by-side to your font project including the licensing terms.\n\n Depending on the chosen license, one of the following string snippets is\n expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the\n name table:\n\n - \"This Font Software is licensed under the SIL Open Font License, Version 1.1.\n This license is available with a FAQ at: https://scripts.sil.org/OFL\"\n\n - \"Licensed under the Apache License, Version 2.0\"\n\n - \"Licensed under the Ubuntu Font Licence 1.0.\"\n\n\n Currently accepted licenses are Apache or Open Font License. For a small set\n of legacy families the Ubuntu Font License may be acceptable as well.\n\n When in doubt, please choose OFL for new font projects.\n ", "result": "PASS"}, {"description": "License URL matches License text on name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has a valid license URL in NAME table.", "status": "PASS", "traceback": null}], "rationale": "\n A known license URL must be provided in the NameID 14 (LICENSE INFO URL)\n entry of the name table.\n\n The source of truth for this check is the licensing text found on the NameID 13\n entry (LICENSE DESCRIPTION).\n\n The string snippets used for detecting licensing terms are:\n\n - \"This Font Software is licensed under the SIL Open Font License, Version 1.1.\n This license is available with a FAQ at: https://scripts.sil.org/OFL\"\n\n - \"Licensed under the Apache License, Version 2.0\"\n\n - \"Licensed under the Ubuntu Font Licence 1.0.\"\n\n\n Currently accepted licenses are Apache or Open Font License. For a small set of\n legacy families the Ubuntu Font License may be acceptable as well.\n\n When in doubt, please choose OFL for new font projects.\n ", "result": "PASS"}, {"description": "Description strings in the name table must not exceed 200 characters.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All description name records have reasonably small lengths.", "status": "PASS", "traceback": null}], "rationale": "\n An old FontLab version had a bug which caused it to store copyright notices\n in nameID 10 entries.\n\n In order to detect those and distinguish them from actual legitimate usage of\n this name table entry, we expect that such strings do not exceed a reasonable\n length of 200 chars.\n\n Longer strings are likely instances of the FontLab bug.\n ", "result": "PASS"}, {"description": "Show hinting filesize impact.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Hinting filesize impact:\n\n | | /home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf |\n |:------------- | ---------------:|\n | Dehinted Size | 570.1kb |\n | Hinted Size | 570.1kb |\n | Increase | 24 bytes |\n | Change | 0.0 % |\n [code: size-impact]", "status": "INFO", "traceback": null}], "rationale": "\n This check is merely informative, displaying and useful comparison of filesizes\n of hinted versus unhinted font files.\n ", "result": "INFO"}, {"description": "Ensure files are not too large.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font had a reasonable file size", "status": "PASS", "traceback": null}], "rationale": "\n Serving extremely large font files on Google Fonts causes usability issues.\n This check ensures that file sizes are reasonable.\n ", "result": "PASS", "severity": 10}, {"description": "Version format is correct in 'name' table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Version format in NAME table entries is correct.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font has ttfautohint params?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font appears to our heuristic as not hinted using ttfautohint. [code: not-hinted]", "status": "SKIP", "traceback": null}], "result": "SKIP"}, {"description": "Font has old ttfautohint applied?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 2.201'] [code: version-not-detected]", "status": "INFO", "traceback": null}], "rationale": "\n Check if font has been hinted with an outdated version of ttfautohint.\n ", "result": "INFO"}, {"description": "EPAR table present in font?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "EPAR table not present in font. To learn more see https://github.com/fonttools/fontbakery/issues/818 [code: lacks-EPAR]", "status": "INFO", "traceback": null}], "rationale": "\n The EPAR table is/was a way of expressing common licensing permissions and\n restrictions in metadata; while almost nothing supported it, Dave Crossland\n wonders that adding it to everything in Google Fonts could help make it\n more popular.\n\n More info is available at:\n https://davelab6.github.io/epar/\n ", "result": "INFO", "severity": 1}, {"description": "Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "These are the ppm ranges declared on the gasp table:\n\nPPM <= 65535:\n\tflag = 0x0F\n\t- Use grid-fitting\n\t- Use grayscale rendering\n\t- Use gridfitting with ClearType symmetric smoothing\n\t- Use smoothing along multiple axes with ClearType\u00ae\n [code: ranges]", "status": "INFO", "traceback": null}, {"message": "The 'gasp' table is correctly set, with one gaspRange:value of 0xFFFF:0x0F.", "status": "PASS", "traceback": null}], "rationale": "\n Traditionally version 0 'gasp' tables were set so that font sizes below 8 ppem\n had no grid fitting but did have antialiasing. From 9-16 ppem, just grid\n fitting.\n And fonts above 17ppem had both antialiasing and grid fitting toggled on.\n The use of accelerated graphics cards and higher resolution screens make this\n approach obsolete. Microsoft's DirectWrite pushed this even further with much\n improved rendering built into the OS and apps.\n\n In this scenario it makes sense to simply toggle all 4 flags ON for all font\n sizes.\n ", "result": "INFO"}, {"description": "Make sure family name does not begin with a digit.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font family name first character is not a digit.", "status": "PASS", "traceback": null}], "rationale": "\n Font family names which start with a numeral are often not discoverable\n in Windows applications.\n ", "result": "PASS"}, {"description": "Are there non-ASCII characters in ASCII-only NAME table entries?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "None of the ASCII-only NAME table entries contain non-ASCII characteres.", "status": "PASS", "traceback": null}], "rationale": "\n The OpenType spec requires ASCII for the POSTSCRIPT_NAME (nameID 6).\n\n For COPYRIGHT_NOTICE (nameID 0) ASCII is required because that string should be\n the same in CFF fonts which also have this requirement in the OpenType spec.\n\n Note:\n A common place where we find non-ASCII strings is on name table entries\n with NameID > 18, which are expressly for localising the ASCII-only IDs\n into Hindi / Arabic / etc.\n ", "result": "PASS"}, {"description": "METADATA.pb: check if fonts field only has unique \"full_name\" values.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb \"fonts\" field only has unique \"full_name\" values.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: check if fonts field only contains unique style:weight pairs.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb \"fonts\" field only has unique style:weight pairs.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb license is \"APACHE2\", \"UFL\" or \"OFL\"?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font license is declared in METADATA.pb as \"OFL\"", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb should contain at least \"menu\" and \"latin\" subsets.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb contains \"menu\" and \"latin\" subsets.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb subsets should be alphabetically ordered.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb subsets are sorted in alphabetical order.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check METADATA.pb includes production subsets.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: listed_on_gfonts_api", "status": "SKIP", "traceback": null}], "rationale": "\n Check METADATA.pb file includes the same subsets as the family in production.\n ", "result": "SKIP"}, {"description": "METADATA.pb: Copyright notice is the same in all fonts?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Copyright is consistent across family", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check that METADATA.pb family values are all the same.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb: Family name is the same in all metadata \"fonts\" items.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: According to Google Fonts standards, families should have a Regular style.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Family has a Regular style.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Regular should be 400.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Regular has weight = 400.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checks METADATA.pb font.name field matches family name declared on the name table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Family name \"Rubik Scribble\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Postscript name \"RubikScribble-Regular\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.full_name value matches fullname declared on the name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font fullname \"Rubik Scribble Regular\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.name value should be same as the family name declared on the name table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK: Family name \"Rubik Scribble\" is identical in METADATA.pb and on the TTF file.", "status": "PASS", "traceback": null}], "rationale": "\n This check ensures consistency between the font name declared on the name table\n and the contents of the METADATA.pb file.\n ", "result": "PASS"}, {"description": "METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font fields \"full_name\" and \"post_script_name\" have equivalent values.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.filename and font.post_script_name fields have equivalent values?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font fields \"filename\" and \"post_script_name\" have equivalent values.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.name field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font.name field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.full_name field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font.full_name field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.filename field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb filename field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.post_script_name field contains font name in right format?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb postScriptName field contains font name in right format.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check name ID 25 to end with \"Italic\" for Italic VFs.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Not an Italic VF.", "status": "PASS", "traceback": null}], "rationale": "\n Due to a bug in (at least) Adobe Indesign, name ID 25\n needs to be different for Italic VFs than their Upright counterparts.\n Google Fonts chooses to append \"Italic\" here.\n ", "result": "PASS"}, {"description": "Copyright notices match canonical pattern in METADATA.pb", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb copyright string is good", "status": "PASS", "traceback": null}], "rationale": "\n The expected pattern for the copyright string adheres to the following rules:\n\n * It must say \"Copyright\" followed by a 4 digit year (optionally followed by\n a hyphen and another 4 digit year)\n\n * Then it must say \"The Project Authors\"\n\n * And within parentheses, a URL for a git repository must be provided\n\n * The check is case insensitive and does not validate whether the familyname\n is correct, even though we'd expect it is (and we may soon update the check\n to validate that aspect as well!)\n\n\n Here is an example of a valid copyright string:\n\n \"Copyright 2017 The Archivo Black Project Authors\n (https://github.com/Omnibus-Type/ArchivoBlack)\"\n ", "result": "PASS"}, {"description": "Copyright notices match canonical pattern in fonts", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Name Table entry: Copyright field 'Copyright 2020 The Rubik Filtered Project Authors (https://github.com/NaN-xyz/Rubik-Filtered)' matches canonical pattern.", "status": "PASS", "traceback": null}, {"message": "Name table copyright entries are good", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Copyright notice on METADATA.pb should not contain 'Reserved Font Name'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb copyright field does not contain \"Reserved Font Name\".", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Copyright notice shouldn't exceed 500 chars.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Copyright notice string is shorter than 500 chars.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Font filenames match font.filename entries?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Filenames in METADATA.pb look good.", "status": "PASS", "traceback": null}], "rationale": "\n Note:\n This check only looks for files in the current directory.\n\n Font files in subdirectories are checked by these other two checks:\n - com.google.fonts/check/metadata/undeclared_fonts\n - com.google.fonts/check/repo/vf_has_static_fonts\n\n We may want to merge them all into a single check.\n ", "result": "PASS"}, {"description": "METADATA.pb font.style \"italic\" matches font internals?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This check only applies to italic fonts.", "status": "SKIP", "traceback": null}], "result": "SKIP"}, {"description": "METADATA.pb font.style \"normal\" matches font internals?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb font.style \"normal\" matches font internals.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb font.name and font.full_name fields match the values declared on the name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "METADATA.pb familyname and fullName fields match corresponding name table entries.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Check font name is the same as family name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font name is the same as family name.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Check that font weight has a canonical value.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font weight has a canonical value.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check METADATA.pb font weights are correct.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 usWeightClass or wght axis value matches weight specified at METADATA.pb", "status": "PASS", "traceback": null}], "rationale": "\n Check METADATA.pb font weights are correct.\n\n For static fonts, the metadata weight should be the same as the static font's\n OS/2 usWeightClass.\n\n For variable fonts, the weight value should be 400 if the font's wght axis range\n includes 400, otherwise it should be the value closest to 400.\n ", "result": "PASS"}, {"description": "METADATA.pb weight matches postScriptName for static fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Weight value matches postScriptName.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Font styles are named canonically?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font styles are named canonically.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "METADATA.pb: Check URL on copyright string is the same as in repository_url field.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Repository URL is https://github.com/NaN-xyz/Rubik-Filtered\n\nBut: OFL text has 'https:/' and HTML description has 'github.com/NaN-xyz/Glyph-Filters'\n [code: mismatch]", "status": "FAIL", "traceback": null}], "rationale": "\n Sometimes, perhaps due to copy-pasting, projects may declare different URLs\n between the font.coyright and the family.sources.repository_url fields.\n ", "result": "FAIL"}, {"description": "METADATA.pb: Check for primary_script", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Try to guess font's primary script and see if that's set in METADATA.pb.\n This is an educated guess based on the number of glyphs per script in the font\n and should be taken with caution.\n ", "result": "PASS"}, {"description": "Shapes languages in all GF glyphsets.", "experimental": "Since 2023/Nov/02", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "GF_Latin_Core glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| haw_Latn (Hawaiian) | Some base glyphs were missing: \u02bb |\n| ^ | Shaper produced a .notdef |\n| mh_Latn (Marshallese) | Some base glyphs were missing: \u1e36, \u1e37, \u1e42, \u1e43, \u1e46, \u1e47, \u1ecc, \u1ecd |\n| ^ | Some mark glyphs were missing: \u25cc\u0323 |\n| ^ | Shaper produced a .notdef |\n| scn_Latn (Sicilian) | Some base glyphs were missing: \u1e0c, \u1e0d |\n| ^ | Shaper produced a .notdef |\n| teo_Latn (Teso) | Some base glyphs were missing: \u0186, \u0190, \u0197, \u0244, \u0254, \u025b, \u0268, \u0289, \u1d43, \u1d49, \u1d4b, \u1d52, \u1d53, \u1d58, \u1da4, \u1db6, \u2071 |\n| ^ | Shaper produced a .notdef |\n\n [code: failed-language-shaping]", "status": "FAIL", "traceback": null}, {"message": "GF_Latin_Core glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| lg_Latn (Ganda) | No variant glyphs were found for Eng |\n| dyo_Latn (Jola-Fonyi) | No variant glyphs were found for Eng |\n| ny_Latn (Nyanja) | No variant glyphs were found for Eng |\n| wo_Latn (Wolof) | No variant glyphs were found for Eng |\n\n [code: warning-language-shaping]", "status": "WARN", "traceback": null}, {"message": "GF_Cyrillic_Plus glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| tg_Cyrl (Tajik) | Some base glyphs were missing: \u04b3 |\n| ^ | Shaper produced a .notdef |\n| uz_Cyrl (Uzbek (Cyrillic)) | Some base glyphs were missing: \u04b3 |\n| ^ | Shaper produced a .notdef |\n\n [code: failed-language-shaping]", "status": "FAIL", "traceback": null}, {"message": "GF_Cyrillic_Plus glyphset:\n\n| Language | FAIL messages |\n| :--- | :--- |\n| ku_Cyrl (Kurdish) | No exemplar glyphs were defined for language Kurdish |\n\n [code: warning-language-shaping]", "status": "WARN", "traceback": null}], "rationale": "\n This check uses a heuristic to determine which GF glyphsets a font supports.\n Then it checks the font for correct shaping behaviour for all languages in\n those glyphsets.\n ", "result": "FAIL"}, {"description": "Stricter unitsPerEm criteria for Google Fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font em size is good (unitsPerEm = 1000).", "status": "PASS", "traceback": null}], "rationale": "\n Even though the OpenType spec allows unitsPerEm to be any value between 16\n and 16384, the Google Fonts project aims at a narrower set of reasonable values.\n\n Values above 4000 would likely result in unreasonable\n filesize increases.\n ", "result": "PASS"}, {"description": "Glyphs are similiar to Google Fonts version?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: api_gfonts_ttFont", "status": "SKIP", "traceback": null}], "result": "SKIP"}, {"description": "Checking direction of slnt axis angles", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n The 'slnt' axis values are defined as negative values for a clockwise (right)\n lean, and positive values for counter-clockwise lean. This is counter-intuitive\n for many designers who are used to think of a positive slant as a lean to\n the right.\n\n This check ensures that the slant axis direction is consistent with the specs.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_slnt\n ", "result": "SKIP"}, {"description": "Check font names are correct", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font names are good:\n\n| nameID | current | expected |\n| :--- | :--- | :--- |\n| Family Name | Rubik Scribble | Rubik Scribble |\n| Subfamily Name | Regular | Regular |\n| Full Name | Rubik Scribble Regular | Rubik Scribble Regular |\n| Postscript Name | RubikScribble-Regular | RubikScribble-Regular |", "status": "PASS", "traceback": null}], "rationale": "\n Google Fonts has several rules which need to be adhered to when\n setting a font's name table. Please read:\n https://googlefonts.github.io/gf-guide/statics.html#supported-styles\n https://googlefonts.github.io/gf-guide/statics.html#style-linking\n https://googlefonts.github.io/gf-guide/statics.html#unsupported-styles\n https://googlefonts.github.io/gf-guide/statics.html#single-weight-families\n ", "result": "PASS"}, {"description": "Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Copyright field for this font on METADATA.pb matches copyright notice entries on the name table.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font has all mandatory 'name' table entries?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font contains values for all mandatory name table entries.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Length of copyright notice must not exceed 500 characters.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All copyright notice name entries on the 'name' table are shorter than 500 characters.", "status": "PASS", "traceback": null}], "rationale": "\n This is an arbitrary max length for the copyright notice field of the name\n table. We simply don't want such notices to be too long. Typically such notices\n are actually much shorter than this with a length of roughly 70 or 80\n characters.\n ", "result": "PASS"}, {"description": "Check for font-v versioning.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Version string is: \"Version 2.201\"\nThe version string must ideally include a git commit hash and either a \"dev\" or a \"release\" suffix such as in the example below:\n\"Version 1.3; git-0d08353-release\" [code: bad-format]", "status": "INFO", "traceback": null}], "rationale": "\n The git sha1 tagging and dev/release features of Source Foundry `font-v` tool\n are awesome and we would love to consider upstreaming the approach into\n fontmake someday. For now we only emit an INFO if a given font does not yet\n follow the experimental versioning style, but at some point we may start\n enforcing it.\n ", "result": "INFO"}, {"description": "Check glyphs do not have components which are themselves components.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyphs do not contain nested components.", "status": "PASS", "traceback": null}], "rationale": "\n There have been bugs rendering variable fonts with nested components.\n Additionally, some static fonts with nested components have been reported\n to have rendering and printing issues.\n\n For more info, see:\n * https://github.com/fonttools/fontbakery/issues/2961\n * https://github.com/arrowtype/recursive/issues/412\n ", "result": "PASS"}, {"description": "Check a static ttf can be generated from a variable font.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Google Fonts may serve static fonts which have been generated from variable\n fonts. This test will attempt to generate a static ttf using fontTool's\n varLib mutator.\n\n The target font will be the mean of each axis e.g:\n\n ## VF font axes\n\n - min weight, max weight = 400, 800\n\n - min width, max width = 50, 100\n\n ## Target Instance\n\n - weight = 600\n\n - width = 75\n ", "result": "SKIP"}, {"description": "Check that variable fonts have an HVAR table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Not having a HVAR table can lead to costly text-layout operations on some\n platforms, which we want to avoid.\n\n So, all variable fonts on the Google Fonts collection should have an HVAR\n with valid values.\n\n More info on the HVAR table can be found at:\n https://docs.microsoft.com/en-us/typography/opentype/spec/otvaroverview#variation-data-tables-and-miscellaneous-requirements\n ", "result": "SKIP"}, {"description": "Font enables smart dropout control in \"prep\" table instructions?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "'prep' table contains instructions enabling smart dropout control.", "status": "PASS", "traceback": null}], "rationale": "\n This setup is meant to ensure consistent rendering quality for fonts across\n all devices (with different rendering/hinting capabilities).\n\n Below is the snippet of instructions we expect to see in the fonts:\n B8 01 FF PUSHW 0x01FF\n 85 SCANCTRL (unconditinally turn on\n dropout control mode)\n B0 04 PUSHB 0x04\n 8D SCANTYPE (enable smart dropout control)\n\n \"Smart dropout control\" means activating rules 1, 2 and 5:\n Rule 1: If a pixel's center falls within the glyph outline,\n that pixel is turned on.\n Rule 2: If a contour falls exactly on a pixel's center,\n that pixel is turned on.\n Rule 5: If a scan line between two adjacent pixel centers\n (either vertical or horizontal) is intersected\n by both an on-Transition contour and an off-Transition\n contour and neither of the pixels was already turned on\n by rules 1 and 2, turn on the pixel which is closer to\n the midpoint between the on-Transition contour and\n off-Transition contour. This is \"Smart\" dropout control.\n\n For more detailed info (such as other rules not enabled in this snippet),\n please refer to the TrueType Instruction Set documentation.\n ", "result": "PASS"}, {"description": "There must not be VTT Talk sources in the font.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There are no tables with VTT Talk sources embedded in the font.", "status": "PASS", "traceback": null}], "rationale": "\n The goal here is to reduce filesizes and improve pageloading when dealing\n with webfonts.\n\n The VTT Talk sources are not necessary at runtime and endup being just dead\n weight when left embedded in the font binaries. The sources should be kept on\n the project files but stripped out when building release binaries.\n ", "result": "PASS"}, {"description": "Are there unwanted Apple tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There are no unwanted AAT tables.", "status": "PASS", "traceback": null}], "rationale": "\n Apple's TrueType reference manual [1] describes SFNT tables not in the\n Microsoft OpenType specification [2] and these can sometimes sneak into final\n release files, but Google Fonts should only have OpenType tables.\n\n [1] https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6.html\n [2] https://docs.microsoft.com/en-us/typography/opentype/spec/\n ", "result": "PASS"}, {"description": "Check a font's STAT table contains compulsory Axis Values.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check a font's STAT table contains compulsory Axis Values which exist\n in the Google Fonts Axis Registry.\n\n We cannot determine what Axis Values the user will set for axes such as\n opsz, GRAD since these axes are unique for each font so we'll skip them.\n ", "result": "SKIP"}, {"description": "Check variable font instances", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check a font's fvar instance coordinates comply with our guidelines:\n https://googlefonts.github.io/gf-guide/variable.html#fvar-instances\n ", "result": "SKIP"}, {"description": "All name entries referenced by fvar instances exist on the name table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n The purpose of this check is to make sure that all name entries referenced\n by variable font instances do exist in the name table.\n ", "result": "SKIP"}, {"description": "PPEM must be an integer on hinted fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_hinted", "status": "SKIP", "traceback": null}], "rationale": "\n Hinted fonts must have head table flag bit 3 set.\n\n Per https://docs.microsoft.com/en-us/typography/opentype/spec/head,\n bit 3 of Head::flags decides whether PPEM should be rounded. This bit should\n always be set for hinted fonts.\n\n Note:\n Bit 3 = Force ppem to integer values for all internal scaler math;\n May use fractional ppem sizes if this bit is clear;\n ", "result": "SKIP"}, {"description": "Are there caret positions declared for every ligature?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n All ligatures in a font must have corresponding caret (text cursor) positions\n defined in the GDEF table, otherwhise, users may experience issues with\n caret rendering.\n\n If using GlyphsApp or UFOs, ligature carets can be defined as anchors with\n names starting with 'caret_'. These can be compiled with fontmake as of\n version v2.4.0.\n ", "result": "PASS"}, {"description": "Is there kerning info for non-ligated sequences?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "GPOS table lacks kerning info for the following non-ligated sequences:\n\n\t- f + f\n\n\t- f + i\n\n\t- i + f\n\n\t- f + l\n\n\t- l + f\n\n\t- i + l [code: lacks-kern-info]", "status": "WARN", "traceback": null}], "rationale": "\n Fonts with ligatures should have kerning on the corresponding non-ligated\n sequences for text where ligatures aren't used\n (eg https://github.com/impallari/Raleway/issues/14).\n ", "result": "WARN"}, {"description": "Combined length of family and style must not exceed 27 characters.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All name entries are good.", "status": "PASS", "traceback": null}], "rationale": "\n According to a GlyphsApp tutorial [1], in order to make sure all versions of\n Windows recognize it as a valid font file, we must make sure that the\n concatenated length of the familyname (NameID.FONT_FAMILY_NAME) and\n style (NameID.FONT_SUBFAMILY_NAME) strings in the name table do not\n exceed 20 characters.\n\n After discussing the problem in more detail at FontBakery issue #2179 [2] we\n decided that allowing up to 27 chars would still be on the safe side, though.\n\n [1] https://glyphsapp.com/tutorials/multiple-masters-part-3-setting-up-instances\n [2] https://github.com/fonttools/fontbakery/issues/2179\n ", "result": "PASS"}, {"description": "Name table entries should not contain line-breaks.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Name table entries are all single-line (no line-breaks found).", "status": "PASS", "traceback": null}], "rationale": "\n There are some entries on the name table that may include more than one line\n of text. The Google Fonts team, though, prefers to keep the name table entries\n short and simple without line breaks.\n\n For instance, some designers like to include the full text of a font license in\n the \"copyright notice\" entry, but for the GFonts collection this entry should\n only mention year, author and other basic info in a manner enforced by\n com.google.fonts/check/font_copyright\n ", "result": "PASS"}, {"description": "Name table strings must not contain the string 'Reserved Font Name'.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "None of the name table strings contain \"Reserved Font Name\".", "status": "PASS", "traceback": null}], "rationale": "\n Some designers adopt the \"Reserved Font Name\" clause of the OFL license. This\n means that the original author reserves the rights to the family name and other\n people can only distribute modified versions using a different family name.\n\n Google Fonts published updates to the fonts in the collection in order to fix\n issues and/or implement further improvements to the fonts. It is important to\n keep the family name so that users of the webfonts can benefit from the updates.\n Since it would forbid such usage scenario, all families in the GFonts collection\n are required to not adopt the RFN clause.\n\n This check ensures \"Reserved Font Name\" is not mentioned in the name table.\n ", "result": "PASS"}, {"description": "Check family name for GF Guide compliance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font name looks good.", "status": "PASS", "traceback": null}], "rationale": "\n Checks the family name for compliance with the Google Fonts Guide.\n https://googlefonts.github.io/gf-guide/onboarding.html#new-fonts\n\n If you want to have your family name added to the CamelCase\n exceptions list, please submit a pull request to the\n camelcased_familyname_exceptions.txt file.\n\n Similarly, abbreviations can be submitted to the\n abbreviations_familyname_exceptions.txt file.\n\n These are located in the Lib/fontbakery/data/googlefonts/ directory\n of the FontBakery source code currently hosted at\n https://github.com/fonttools/fontbakery/\n ", "result": "PASS"}, {"description": "Directory name in GFonts repo structure must match NameID 1 of the regular.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "A static fonts directory, if present, must contain manually hinted fonts", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Variable font family directories kept in the google/fonts git repo may include\n a static/ subdir containing static fonts, if manual hinting is used on\n these fonts. Otherwise, the directory should be removed.\n ", "result": "PASS"}, {"description": "A font repository should not include FontBakery report files", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n A FontBakery report is ephemeral and so should be used for posting issues on a\n bug-tracker instead of being hosted in the font project repository.\n ", "result": "PASS"}, {"description": "Check upstream.yaml file contains all required fields", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The upstream.yaml file contains all necessary fields", "status": "PASS", "traceback": null}], "rationale": "\n If a family has been pushed using the gftools packager, we must check that all\n the required fields in the upstream.yaml file have been populated.\n ", "result": "PASS", "severity": 10}, {"description": "A font repository should not include ZIP files", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Sometimes people check in ZIPs into their font project repositories. While we\n accept the practice of checking in binaries, we believe that a ZIP is a step\n too far ;)\n\n Note: a source purist position is that only source files and build scripts\n should be checked in.\n ", "result": "PASS"}, {"description": "Check font follows the Google Fonts vertical metric schema", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The sum of hhea.ascender + abs(hhea.descender) + hhea.lineGap is 1185 when it should be at least 1200 [code: bad-hhea-range]", "status": "FAIL", "traceback": null}], "rationale": "\n This check generally enforces Google Fonts\u2019 vertical metrics specifications.\n In particular:\n * lineGap must be 0\n * Sum of hhea ascender + abs(descender) + linegap must be\n between 120% and 200% of UPM\n * Warning if sum is over 150% of UPM\n\n The threshold levels 150% (WARN) and 200% (FAIL) are somewhat arbitrarily chosen\n and may hint at a glaring mistake in the metrics calculations or UPM settings.\n\n Our documentation includes further information:\n https://github.com/googlefonts/gf-docs/tree/main/VerticalMetrics\n ", "result": "FAIL"}, {"description": "Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: regular_remote_style", "status": "SKIP", "traceback": null}], "rationale": "\n If the family already exists on Google Fonts, we need to ensure that the\n checked family's vertical metrics are similar. This check will test the\n following schema which was outlined in Font Bakery issue #1162 [1]:\n\n - The family should visually have the same vertical metrics as the Regular\n style hosted on Google Fonts.\n\n - If the family on Google Fonts has differing hhea and typo metrics, the family\n being checked should use the typo metrics for both the hhea and typo entries.\n\n - If the family on Google Fonts has use typo metrics not enabled and the family\n being checked has it enabled, the hhea and typo metrics should use the family\n on Google Fonts winAscent and winDescent values.\n\n - If the upms differ, the values must be scaled so the visual appearance is\n the same.\n\n [1] https://github.com/fonttools/fontbakery/issues/1162\n ", "result": "SKIP"}, {"description": "Check font follows the Google Fonts CJK vertical metric schema", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cjk_font", "status": "SKIP", "traceback": null}], "rationale": "\n CJK fonts have different vertical metrics when compared to Latin fonts.\n We follow the schema developed by dr Ken Lunde for Source Han Sans and\n the Noto CJK fonts.\n\n Our documentation includes further information:\n https://github.com/googlefonts/gf-docs/tree/main/Spec#cjk-vertical-metrics\n ", "result": "SKIP"}, {"description": "Check if the vertical metrics of a CJK family are similar to the same family hosted on Google Fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cjk_font, regular_remote_style", "status": "SKIP", "traceback": null}], "rationale": "\n Check CJK family has the same vertical metrics as the same family\n hosted on Google Fonts.\n ", "result": "SKIP"}, {"description": "Does the font contain less than 150 CJK characters?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_claiming_to_be_cjk_font", "status": "SKIP", "traceback": null}], "rationale": "\n Kana has 150 characters and it's the smallest CJK writing system.\n\n If a font contains less CJK glyphs than this writing system, we inform the\n user that some glyphs may be encoded incorrectly.\n ", "result": "SKIP"}, {"description": "Check variable font instances don't have duplicate names", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n This check's purpose is to detect duplicate named instances names in a\n given variable font.\n Repeating instance names may be the result of instances for several VF axes\n defined in `fvar`, but since currently only weight+italic tokens are allowed\n in instance names as per GF specs, they ended up repeating.\n Instead, only a base set of fonts for the most default representation of the\n family can be defined through instances in the `fvar` table, all other\n instances will have to be left to access through the `STAT` table.\n ", "result": "SKIP"}, {"description": "Ensure VFs do not contain the ital axis.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n The 'ital' axis is not supported yet in Google Chrome.\n\n For the time being, we need to ensure that VFs do not contain this axis.\n Once browser support is better, we can deprecate this check.\n\n For more info regarding browser support, see:\n https://arrowtype.github.io/vf-slnt-test/\n ", "result": "SKIP"}, {"description": "Ensure VFs with duplexed axes do not vary horizontal advance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Certain axes, such as grade (GRAD) or roundness (ROND), should not\n change any advanceWidth or kerning data across the font's design space.\n This is because altering the advance width of glyphs can cause text reflow.\n ", "result": "SKIP"}, {"description": "Validate METADATA.pb axes values are within gf_axisregistry bounds.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Each axis range in a METADATA.pb file must be registered, and within the bounds\n of the axis definition in the Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n ", "result": "SKIP"}, {"description": "Validate METADATA.pb axes tags are defined in gf_axisregistry.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Ensure all axes in a METADATA.pb file are registered in the\n Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n\n Why does Google Fonts have its own Axis Registry?\n\n We support a superset of the OpenType axis registry axis set, and use\n additional metadata for each axis. Axes present in a font file but not in this\n registry will not function via our API. No variable font is expected to\n support all of the axes here.\n\n Any font foundry or distributor library that offers variable fonts has a\n implicit, latent, de-facto axis registry, which can be extracted by scanning\n the library for axes' tags, labels, and min/def/max values. While in 2016\n Microsoft originally offered to include more axes in the OpenType 1.8\n specification (github.com/microsoft/OpenTypeDesignVariationAxisTags), as of\n August 2020, this effort has stalled. We hope more foundries and distributors\n will publish documents like this that make their axes explicit, to encourage\n of adoption of variable fonts throughout the industry, and provide source\n material for a future update to the OpenType specification's axis registry.\n ", "result": "SKIP"}, {"description": "Validate defaults on fvar table match registered fallback names in GFAxisRegistry.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check that axis defaults have a corresponding fallback name registered at the\n Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n\n This is necessary for the following reasons:\n\n To get ZIP files downloads on Google Fonts to be accurate \u2014 otherwise the\n chosen default font is not generated. The Newsreader family, for instance, has\n a default value on the 'opsz' axis of 16pt. If 16pt was not a registered\n fallback position, then the ZIP file would instead include another position\n as default (such as 14pt).\n\n For the Variable fonts to display the correct location on the specimen page.\n\n For VF with no weight axis to be displayed at all. For instance, Ballet, which\n has no weight axis, was not appearing in sandbox because default position on\n 'opsz' axis was 16pt, and it was not yet a registered fallback positon.\n ", "result": "SKIP"}, {"description": "Validate STAT particle names and values match the fallback names in GFAxisRegistry.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Check that particle names and values on STAT table match the fallback names\n in each axis entry at the Google Fonts Axis Registry, available at\n https://github.com/google/fonts/tree/main/axisregistry\n ", "result": "SKIP"}, {"description": "Validate VF axes match the ones declared on METADATA.pb.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n All font variation axes present in the font files must be properly declared\n on METADATA.pb so that they can be served by the GFonts API.\n ", "result": "SKIP"}, {"description": "Ensure METADATA.pb does not use escaped strings.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n In some cases we've seen designer names and other fields with escaped strings\n in METADATA files (such as \"Juli\\303\\241n\").\n\n Nowadays the strings can be full unicode strings (such as \"Juli\u00e1n\") and do\n not need escaping.\n\n Escaping quotes or double-quotes is fine, though.\n ", "result": "PASS"}, {"description": "METADATA.pb: Designers are listed correctly on the Google Fonts catalog?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Designer Luke Prowse still does not have an avatar image. Please provide one. [code: missing-avatar]", "status": "FAIL", "traceback": null}], "rationale": "\n Google Fonts has a catalog of designers.\n\n This check ensures that the online entries of the catalog can be found based\n on the designer names listed on the METADATA.pb file.\n\n It also validates the URLs and file formats are all correctly set.\n ", "result": "FAIL"}, {"description": "Ensure variable fonts include an avar table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n Most variable fonts should include an avar table to correctly define\n axes progression rates.\n\n For example, a weight axis from 0% to 100% doesn't map directly to 100 to 1000,\n because a 10% progression from 0% may be too much to define the 200,\n while 90% may be too little to define the 900.\n\n If the progression rates of axes is linear, this check can be ignored.\n Fontmake will also skip adding an avar table if the progression rates\n are linear. However, we still recommend designers visually proof each\n instance is at the expected weight, width etc.\n ", "result": "SKIP"}, {"description": "On a family update, the DESCRIPTION.en_us.html file should ideally also be updated.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The DESCRIPTION.en_us.html file in this family has not changed in comparison to the latest font release on the google/fonts github repo.\nPlease consider mentioning note-worthy improvements made to the family recently. [code: description-not-updated]", "status": "WARN", "traceback": null}], "rationale": "\n We want to ensure that any significant changes to the font family are\n properly mentioned in the DESCRIPTION file.\n\n In general, it means that the contents of the DESCRIPTION.en_us.html file\n will typically change if when font files are updated. Please treat this check\n as a reminder to do so whenever appropriate!\n ", "result": "WARN"}, {"description": "Check small caps glyphs are available.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Ensure small caps glyphs are available if\n a font declares smcp or c2sc OT features.\n ", "result": "PASS"}, {"description": "Ensure Stylistic Sets have description.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Stylistic sets should provide description text. Programs such as InDesign,\n TextEdit and Inkscape use that info to display to the users so that they know\n what a given stylistic set offers.\n ", "result": "PASS"}, {"description": "OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n All fonts on the Google Fonts collection should have OS/2.fsSelection bit 7\n (USE_TYPO_METRICS) set. This requirement is part of the vertical metrics scheme\n established as a Google Fonts policy aiming at a common ground supported by\n all major font rendering environments.\n\n For more details, read:\n https://github.com/googlefonts/gf-docs/blob/main/VerticalMetrics/README.md\n\n Below is the portion of that document that is most relevant to this check:\n\n Use_Typo_Metrics must be enabled. This will force MS Applications to use the\n OS/2 Typo values instead of the Win values. By doing this, we can freely set\n the Win values to avoid clipping and control the line height with the typo\n values. It has the added benefit of future line height compatibility. When\n a new script is added, we simply change the Win values to the new yMin\n and yMax, without needing to worry if the line height have changed.\n ", "result": "PASS", "severity": 10}, {"description": "Ensure fonts have ScriptLangTags declared on the 'meta' table.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This font file does not have a 'meta' table. [code: lacks-meta-table]", "status": "WARN", "traceback": null}], "rationale": "\n The OpenType 'meta' table originated at Apple. Microsoft added it to OT with\n just two DataMap records:\n\n - dlng: comma-separated ScriptLangTags that indicate which scripts,\n or languages and scripts, with possible variants, the font is designed for.\n\n - slng: comma-separated ScriptLangTags that indicate which scripts,\n or languages and scripts, with possible variants, the font supports.\n\n\n The slng structure is intended to describe which languages and scripts the\n font overall supports. For example, a Traditional Chinese font that also\n contains Latin characters, can indicate Hant,Latn, showing that it supports\n Hant, the Traditional Chinese variant of the Hani script, and it also\n supports the Latn script.\n\n The dlng structure is far more interesting. A font may contain various glyphs,\n but only a particular subset of the glyphs may be truly \"leading\" in the design,\n while other glyphs may have been included for technical reasons. Such a\n Traditional Chinese font could only list Hant there, showing that it\u2019s designed\n for Traditional Chinese, but the font would omit Latn, because the developers\n don\u2019t think the font is really recommended for purely Latin-script use.\n\n The tags used in the structures can comprise just script, or also language\n and script. For example, if a font has Bulgarian Cyrillic alternates in the\n locl feature for the cyrl BGR OT languagesystem, it could also indicate in\n dlng explicitly that it supports bul-Cyrl. (Note that the scripts and languages\n in meta use the ISO language and script codes, not the OpenType ones).\n\n This check ensures that the font has the meta table containing the\n slng and dlng structures.\n\n All families in the Google Fonts collection should contain the 'meta' table.\n Windows 10 already uses it when deciding on which fonts to fall back to.\n The Google Fonts API and also other environments could use the data for\n smarter filtering. Most importantly, those entries should be added\n to the Noto fonts.\n\n In the font making process, some environments store this data in external\n files already. But the meta table provides a convenient way to store this\n inside the font file, so some tools may add the data, and unrelated tools\n may read this data. This makes the solution much more portable and universal.\n ", "result": "WARN", "severity": 3}, {"description": "Ensure fonts do not contain any pre-production tables.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Tables such as `Debg` are useful in the pre-production stages of font\n development, but add unnecessary bloat to a production font and should\n be removed before release.\n ", "result": "PASS", "severity": 6}, {"description": "Check font family directory name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Directory name is \"rubikscribble\", as expected.", "status": "PASS", "traceback": null}], "rationale": "\n We want the directory name of a font family to be predictable and directly\n derived from the family name, all lowercased and removing spaces.\n ", "result": "PASS"}, {"description": "Check font can render its own name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font can successfully render its own name (Rubik Scribble)", "status": "PASS", "traceback": null}], "rationale": "\n A base expectation is that a font family's regular/default (400 roman) style\n can render its 'menu name' (nameID 1) in itself.\n ", "result": "PASS"}, {"description": "Check samples can be rendered.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK.", "status": "PASS", "traceback": null}], "rationale": "\n In order to prevent tofu from being seen on fonts.google.com, this check\n verifies that all samples specified by METADATA.pb can be properly\n rendered by the font.\n ", "result": "PASS"}, {"description": "Check if category on METADATA.pb matches what can be inferred from the family name.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK.", "status": "PASS", "traceback": null}], "rationale": "\n Sometimes the font familyname contains words that hint at which is the most\n likely correct category to be declared on METADATA.pb\n ", "result": "PASS"}, {"description": "Check font has the expected color font tables.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks Good!", "status": "PASS", "traceback": null}], "rationale": "\n COLR v0 fonts are widely supported in most browsers so they do not require\n an SVG color table. However, some environments (e.g. Safari, Adobe apps)\n do not currently support COLR v1 so we need to add an SVG table to these fonts,\n except in the case of variable fonts, since SVG does not support\n OpenType Variations.\n\n To automatically generate compatible SVG/COLR tables,\n run the maximum_color tool in nanoemoji:\n https://github.com/googlefonts/nanoemoji\n ", "result": "PASS"}, {"description": "Color layers should have a minimum brightness", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Layers of a COLRv0 font should not be too dark or too bright. When layer colors\n are set explicitly, they can't be changed and they may turn out illegible\n against dark or bright backgrounds.\n\n While traditional color-less fonts can be colored in design apps or CSS, a\n black color definition in a COLRv0 font actually means that that layer will be\n rendered in black regardless of the background color. This leads to text\n becoming invisible against a dark background, for instance when using a dark\n theme in a web browser or operating system.\n\n This check ensures that layer colors are at least 10% bright and at most 90%\n bright, when not already set to the current color (0xFFFF).\n ", "result": "PASS"}, {"description": "Put an empty glyph on GID 1 right after the .notdef glyph for COLRv0 fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n A rendering bug in Windows 10 paints whichever glyph is on GID 1 on top of\n some glyphs, colored or not. This only occurs for COLR version 0 fonts.\n\n Having a glyph with no contours on GID 1 is a practical workaround for that.\n\n See https://github.com/googlefonts/gftools/issues/609\n ", "result": "PASS"}, {"description": "Noto fonts must have an ARTICLE.en_us.html file", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_noto", "status": "SKIP", "traceback": null}], "rationale": "\n Noto fonts are displayed in a different way on the fonts.google.com\n web site, and so must also contain an article about them.\n ", "result": "SKIP"}, {"description": "At least one designer is declared in METADATA.pb", "experimental": "Since 2023/Oct/12", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font designer field is not empty.", "status": "PASS", "traceback": null}], "rationale": "\n Any font published on Google Fonts must credit one or several authors,\n foundry and/or individuals.\n\n Ideally, all authors listed in the upstream repository's AUTHORS.txt should\n be mentioned in the designer field.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"FAIL": 4, "INFO": 7, "PASS": 97, "SKIP": 27, "WARN": 5}}, {"checks": [{"description": "Checking all files are in the same directory.", "key": ["", "", []], "logs": [{"message": "All files are in the same directory.", "status": "PASS", "traceback": null}], "rationale": "\n If the set of font files passed in the command line is not all in the\n same directory, then we warn the user since the tool will interpret the\n set of files as belonging to a single family (and it is unlikely that\n the user would store the files from a single family spreaded\n in several separate directories).\n ", "result": "PASS"}, {"description": "Each font in a family must have the same set of vertical metrics values.", "key": ["", "", []], "logs": [{"message": "Vertical metrics are the same across the family.", "status": "PASS", "traceback": null}], "rationale": "\n We want all fonts within a family to have the same vertical metrics so\n their line spacing is consistent across the family.\n ", "result": "PASS"}, {"description": "Name table records must not have trailing spaces.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No trailing spaces on name table entries.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking OS/2 usWinAscent & usWinDescent.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 usWinAscent & usWinDescent values look good!", "status": "PASS", "traceback": null}], "rationale": "\n A font's winAscent and winDescent values should be greater than or equal to\n the head table's yMax, abs(yMin) values. If they are less than these values,\n clipping can occur on Windows platforms\n (https://github.com/RedHatBrand/Overpass/issues/33).\n\n If the font includes tall/deep writing systems such as Arabic or Devanagari,\n the winAscent and winDescent can be greater than the yMax and absolute yMin\n values to accommodate vowel marks.\n\n When the 'win' Metrics are significantly greater than the UPM, the linespacing\n can appear too loose. To counteract this, enabling the OS/2 fsSelection\n bit 7 (Use_Typo_Metrics), will force Windows to use the OS/2 'typo' values\n instead. This means the font developer can control the linespacing with\n the 'typo' values, whilst avoiding clipping by setting the 'win' values to\n values greater than the yMax and absolute yMin.\n ", "result": "PASS"}, {"description": "Checking OS/2 Metrics match hhea Metrics.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2.sTypoAscender/Descender values match hhea.ascent/descent.", "status": "PASS", "traceback": null}], "rationale": "\n OS/2 and hhea vertical metric values should match. This will produce the\n same linespacing on Mac, GNU+Linux and Windows.\n\n - Mac OS X uses the hhea values.\n - Windows uses OS/2 or Win, depending on the OS or fsSelection bit value.\n\n When OS/2 and hhea vertical metrics match, the same linespacing results on\n macOS, GNU+Linux and Windows. Note that fixing this issue in a previously\n released font may cause reflow in user documents and unhappy users.\n ", "result": "PASS"}, {"description": "Checking with ots-sanitize.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "ots-sanitize passed this file", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Do we have the latest version of FontBakery installed?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "FontBakery is up-to-date.", "status": "PASS", "traceback": null}], "rationale": "\n Running old versions of FontBakery can lead to a poor report which may\n include false WARNs and FAILs due do bugs, as well as outdated\n quality assurance criteria.\n\n Older versions will also not report problems that are detected by new checks\n added to the tool in more recent updates.\n ", "result": "PASS"}, {"description": "Font contains '.notdef' as its first glyph?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n The OpenType specification v1.8.2 recommends that the first glyph is the\n '.notdef' glyph without a codepoint assigned and with a drawing:\n\n The .notdef glyph is very important for providing the user feedback\n that a glyph is not found in the font. This glyph should not be left\n without an outline as the user will only see what looks like a space\n if a glyph is missing and not be aware of the active font\u2019s limitation.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/recom#glyph-0-the-notdef-glyph\n\n Pre-v1.8, it was recommended that fonts should also contain 'space', 'CR'\n and '.null' glyphs. This might have been relevant for MacOS 9 applications.\n ", "result": "PASS"}, {"description": "Font contains glyphs for whitespace characters?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font contains glyphs for whitespace characters.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font has **proper** whitespace glyph names?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has **AGL recommended** names for whitespace glyphs.", "status": "PASS", "traceback": null}], "rationale": "\n This check enforces adherence to recommended whitespace\n (codepoints 0020 and 00A0) glyph names according to the Adobe Glyph List.\n ", "result": "PASS"}, {"description": "Whitespace glyphs have ink?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There is no whitespace glyph with ink.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check that legacy accents aren't used in composite glyphs. (derived from com.google.fonts/check/legacy_accents)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Legacy accents should not be used in accented glyphs. The use of legacy\n accents in accented glyphs breaks the mark to mark combining feature that\n allows a font to stack diacritics over one glyph. Use combining marks\n instead as a component in composite glyphs.\n\n Legacy accents should not have anchors and should have non-zero width.\n They are often used independently of a letter, either as a placeholder\n for an expected combined mark+letter combination in MacOS, or separately.\n For instance, U+00B4 (ACUTE ACCENT) is often mistakenly used as an apostrophe,\n U+0060 (GRAVE ACCENT) is used in Markdown to notify code blocks,\n and ^ is used as an exponential operator in maths.\n ", "result": "PASS"}, {"description": "Check that Arabic spacing symbols U+FBB2\u2013FBC1 aren't classified as marks.", "experimental": "Since 2023/Oct/20", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Unicode has a few spacing symbols representing Arabic dots and other marks,\n but they are purposefully not classified as marks.\n\n Many fonts mistakenly classify them as marks, making them unsuitable\n for their original purpose as stand-alone symbols to used in pedagogical\n contexts discussing Arabic consonantal marks.\n ", "result": "PASS", "severity": 4}, {"description": "Check that glyph for U+0675 ARABIC LETTER HIGH HAMZA is not a mark.", "experimental": "Since 2023/Oct/20", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This check will only run on fonts that have both glyphs U+0621 and U+0675 [code: glyphs-missing]", "status": "SKIP", "traceback": null}], "rationale": "\n Many fonts incorrectly treat ARABIC LETTER HIGH HAMZA (U+0675) as a variant of\n ARABIC HAMZA ABOVE (U+0654) and make it a combining mark of the same size.\n\n But U+0675 is a base letter and should be a variant of ARABIC LETTER HAMZA\n (U+0621) but raised slightly above baseline.\n\n Not doing so effectively makes the font useless for Jawi and\n possibly Kazakh as well.\n ", "result": "SKIP", "severity": 4}, {"description": "Font contains all required tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This font contains the following optional tables:\n\n\t- loca\n\n\t- prep\n\n\t- GPOS\n\n\t- GSUB\n\n\t- gasp [code: optional-tables]", "status": "INFO", "traceback": null}, {"message": "Font contains all required tables.", "status": "PASS", "traceback": null}], "rationale": "\n According to the OpenType spec\n https://docs.microsoft.com/en-us/typography/opentype/spec/otff#required-tables\n\n Whether TrueType or CFF outlines are used in an OpenType font, the following\n tables are required for the font to function correctly:\n\n - cmap (Character to glyph mapping)\u23ce\n - head (Font header)\u23ce\n - hhea (Horizontal header)\u23ce\n - hmtx (Horizontal metrics)\u23ce\n - maxp (Maximum profile)\u23ce\n - name (Naming table)\u23ce\n - OS/2 (OS/2 and Windows specific metrics)\u23ce\n - post (PostScript information)\n\n The spec also documents that variable fonts require the following table:\n\n - STAT (Style attributes)\n\n Depending on the typeface and coverage of a font, certain tables are\n recommended for optimum quality.\n\n For example:\u23ce\n - the performance of a non-linear font is improved if the VDMX, LTSH,\n and hdmx tables are present.\u23ce\n - Non-monospaced Latin fonts should have a kern table.\u23ce\n - A gasp table is necessary if a designer wants to influence the sizes\n at which grayscaling is used under Windows. Etc.\n ", "result": "INFO"}, {"description": "Are there unwanted tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There are no unwanted tables.", "status": "PASS", "traceback": null}], "rationale": "\n Some font editors store source data in their own SFNT tables, and these\n can sometimes sneak into final release files, which should only have\n OpenType spec tables.\n ", "result": "PASS"}, {"description": "Check correctness of STAT table strings", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n On the STAT table, the \"Italic\" keyword must not be used on AxisValues\n for variation axes other than 'ital'.\n ", "result": "SKIP"}, {"description": "Glyph names are all valid?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyph names are all valid.", "status": "PASS", "traceback": null}], "rationale": "\n Microsoft's recommendations for OpenType Fonts states the following:\n\n 'NOTE: The PostScript glyph name must be no longer than 31 characters,\n include only uppercase or lowercase English letters, European digits,\n the period or the underscore, i.e. from the set [A-Za-z0-9_.] and\n should start with a letter, except the special glyph name \".notdef\"\n which starts with a period.'\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/recom#post-table\n\n\n In practice, though, particularly in modern environments, glyph names\n can be as long as 63 characters.\n\n According to the \"Adobe Glyph List Specification\" available at:\n\n https://github.com/adobe-type-tools/agl-specification\n ", "result": "PASS"}, {"description": "Font contains unique glyph names?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyph names are all unique.", "status": "PASS", "traceback": null}], "rationale": "\n Duplicate glyph names prevent font installation on Mac OS X.\n ", "result": "PASS"}, {"description": "List all superfamily filepaths", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble [code: family-path]", "status": "INFO", "traceback": null}], "rationale": "\n This is a merely informative check that lists all sibling families\n detected by fontbakery.\n\n Only the fontfiles in these directories will be considered in\n superfamily-level checks.\n ", "result": "INFO"}, {"description": "Each font in set of sibling families must have the same set of vertical metrics values.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Sibling families were not detected.", "status": "SKIP", "traceback": null}], "rationale": "\n We may want all fonts within a super-family (all sibling families) to have\n the same vertical metrics so their line spacing is consistent\n across the super-family.\n\n This is an experimental extended version of\n com.google.fonts/check/family/vertical_metrics and for now it will only\n result in WARNs.\n ", "result": "SKIP"}, {"description": "Ensure indic fonts have the Indian Rupee Sign glyph.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_indic_font", "status": "SKIP", "traceback": null}], "rationale": "\n Per Bureau of Indian Standards every font supporting one of the\n official Indian languages needs to include Unicode Character\n \u201c\u20b9\u201d (U+20B9) Indian Rupee Sign.\n ", "result": "SKIP"}, {"description": "Check font contains no unreachable glyphs", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font did not contain any unreachable glyphs", "status": "PASS", "traceback": null}], "rationale": "\n Glyphs are either accessible directly through Unicode codepoints or through\n substitution rules.\n\n In Color Fonts, glyphs are also referenced by the COLR table.\n\n Any glyphs not accessible by either of these means\n are redundant and serve only to increase the font's file size.\n ", "result": "PASS"}, {"description": "Check if each glyph has the recommended amount of contours.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.\n\nThe following glyphs do not have the recommended number of contours:\n\n\t- Glyph name: exclam\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: quotedbl\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: numbersign\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: percent\tContours detected: 10\tExpected: 5\n\n\t- Glyph name: ampersand\tContours detected: 6\tExpected: 1, 2 or 3\n\n\t- Glyph name: quotesingle\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: parenleft\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: parenright\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: asterisk\tContours detected: 2\tExpected: 1 or 4\n\n\t- Glyph name: plus\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: comma\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: hyphen\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: period\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: slash\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: zero\tContours detected: 4\tExpected: 2 or 3\n\n\t- Glyph name: one\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: two\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: three\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: four\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: five\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: six\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: seven\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: eight\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: nine\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: colon\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: semicolon\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: less\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: equal\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: greater\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: question\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: at\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: A\tContours detected: 3\tExpected: 2\n\n\t- Glyph name: B\tContours detected: 6\tExpected: 2 or 3\n\n\t- Glyph name: C\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: D\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: E\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: F\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: G\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: H\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: I\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: J\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: L\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: M\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: N\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: O\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: P\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: Q\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: R\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: S\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: T\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: U\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: V\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: X\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Y\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: Z\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: bracketleft\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: backslash\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: bracketright\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: asciicircum\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: underscore\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: grave\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: a\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: b\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: c\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: d\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: e\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: f\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: g\tContours detected: 5\tExpected: 2 or 3\n\n\t- Glyph name: h\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: i\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: j\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: l\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: m\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: n\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: o\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: p\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: q\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: r\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: s\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: t\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: u\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: v\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: w\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: x\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: z\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: braceleft\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: bar\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: braceright\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: asciitilde\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: exclamdown\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: currency\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: brokenbar\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: section\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: dieresis\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: copyright\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: guillemotleft\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: logicalnot\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: registered\tContours detected: 8\tExpected: 3 or 4\n\n\t- Glyph name: macron\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: degree\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: plusminus\tContours detected: 3\tExpected: 1 or 2\n\n\t- Glyph name: uni00B2\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni00B3\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: acute\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni00B5\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: periodcentered\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: cedilla\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni00B9\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: ordmasculine\tContours detected: 4\tExpected: 2 or 3\n\n\t- Glyph name: guillemotright\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: onequarter\tContours detected: 9\tExpected: 3 or 4\n\n\t- Glyph name: onehalf\tContours detected: 7\tExpected: 3\n\n\t- Glyph name: threequarters\tContours detected: 10\tExpected: 3 or 4\n\n\t- Glyph name: questiondown\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Agrave\tContours detected: 5\tExpected: 3\n\n\t- Glyph name: Aacute\tContours detected: 5\tExpected: 3\n\n\t- Glyph name: Acircumflex\tContours detected: 5\tExpected: 3\n\n\t- Glyph name: Atilde\tContours detected: 5\tExpected: 3\n\n\t- Glyph name: Adieresis\tContours detected: 7\tExpected: 4\n\n\t- Glyph name: Aring\tContours detected: 7\tExpected: 3 or 4\n\n\t- Glyph name: AE\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Egrave\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Eacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ecircumflex\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Edieresis\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Igrave\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Iacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Icircumflex\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Idieresis\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Eth\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ntilde\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ograve\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Oacute\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Ocircumflex\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Otilde\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Odieresis\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: multiply\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Oslash\tContours detected: 6\tExpected: 2 or 3\n\n\t- Glyph name: Ugrave\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Uacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ucircumflex\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Udieresis\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Yacute\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: Thorn\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: germandbls\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: agrave\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: aacute\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: acircumflex\tContours detected: 7\tExpected: 3\n\n\t- Glyph name: atilde\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: adieresis\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: aring\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: ae\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: egrave\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: eacute\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: ecircumflex\tContours detected: 7\tExpected: 3\n\n\t- Glyph name: edieresis\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: igrave\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: iacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: icircumflex\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: idieresis\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: eth\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ntilde\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ograve\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: oacute\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: ocircumflex\tContours detected: 7\tExpected: 3\n\n\t- Glyph name: otilde\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: odieresis\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: divide\tContours detected: 4\tExpected: 3\n\n\t- Glyph name: oslash\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: ugrave\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ucircumflex\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: udieresis\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: yacute\tContours detected: 3\tExpected: 2\n\n\t- Glyph name: thorn\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ydieresis\tContours detected: 5\tExpected: 3\n\n\t- Glyph name: Amacron\tContours detected: 5\tExpected: 3\n\n\t- Glyph name: amacron\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Abreve\tContours detected: 5\tExpected: 3\n\n\t- Glyph name: abreve\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Aogonek\tContours detected: 4\tExpected: 2 or 3\n\n\t- Glyph name: aogonek\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Cacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: cacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ccircumflex\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ccircumflex\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: Cdotaccent\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: cdotaccent\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ccaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ccaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Dcaron\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: dcaron\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Dcroat\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: dcroat\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Emacron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: emacron\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Ebreve\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ebreve\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Edotaccent\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: edotaccent\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: eogonek\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ecaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ecaron\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Gcircumflex\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: gcircumflex\tContours detected: 8\tExpected: 3 or 4\n\n\t- Glyph name: Gbreve\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: gbreve\tContours detected: 7\tExpected: 3 or 4\n\n\t- Glyph name: Gdotaccent\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: gdotaccent\tContours detected: 7\tExpected: 3 or 4\n\n\t- Glyph name: uni0122\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0123\tContours detected: 7\tExpected: 3 or 4\n\n\t- Glyph name: Hcircumflex\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: hcircumflex\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: Hbar\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: hbar\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Itilde\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: itilde\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Imacron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: imacron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ibreve\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ibreve\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: iogonek\tContours detected: 4\tExpected: 2 or 3\n\n\t- Glyph name: Idotaccent\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: dotlessi\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: IJ\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: ij\tContours detected: 8\tExpected: 3 or 4\n\n\t- Glyph name: Jcircumflex\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: jcircumflex\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni0136\tContours detected: 4\tExpected: 2 or 3\n\n\t- Glyph name: uni0137\tContours detected: 4\tExpected: 2 or 3\n\n\t- Glyph name: kgreenlandic\tContours detected: 3\tExpected: 1 or 2\n\n\t- Glyph name: Lacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: lacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni013B\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni013C\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Lcaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: lcaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ldot\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ldot\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Lslash\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: lslash\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Nacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: nacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0145\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0146\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ncaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ncaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: napostrophe\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Eng\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: eng\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Omacron\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: omacron\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Obreve\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: obreve\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Ohungarumlaut\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: ohungarumlaut\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: OE\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: oe\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Racute\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: racute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0156\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0157\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Rcaron\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: rcaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Sacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: sacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Scircumflex\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: scircumflex\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: scedilla\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: Scaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: scaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Tcaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: tcaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Tbar\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: tbar\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Utilde\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: utilde\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Umacron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: umacron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ubreve\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ubreve\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Uring\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uring\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Uhungarumlaut\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uhungarumlaut\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Uogonek\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uogonek\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Wcircumflex\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: wcircumflex\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: Ycircumflex\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: ycircumflex\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ydieresis\tContours detected: 7\tExpected: 3\n\n\t- Glyph name: Zacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: zacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Zdotaccent\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: zdotaccent\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Zcaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: zcaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: longs\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: florin\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: AEacute\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: aeacute\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: Oslashacute\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: oslashacute\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: uni0218\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0219\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni021A\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni021B\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0237\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni02BC\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: circumflex\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: caron\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: breve\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: dotaccent\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: ring\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ogonek\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: tilde\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: hungarumlaut\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: gravecomb\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: acutecomb\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0302\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: tildecomb\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0304\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0306\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0307\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0308\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni030A\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni030B\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni030C\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0312\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0326\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0327\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0328\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0335\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0337\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0338\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0400\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0401\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0402\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0403\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0404\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0405\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0406\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0407\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0408\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0409\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni040A\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni040B\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni040C\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni040D\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni040E\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni040F\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0410\tContours detected: 3\tExpected: 2\n\n\t- Glyph name: uni0411\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0412\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0413\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0414\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0415\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0416\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: uni0417\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0418\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0419\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni041A\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni041B\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni041C\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni041D\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni041E\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni041F\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0420\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: uni0421\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0422\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0423\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0424\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0425\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0426\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0427\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0428\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0429\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni042A\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni042B\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni042C\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni042D\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni042E\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni042F\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0430\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0431\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0432\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0433\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0434\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0435\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0436\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0437\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0438\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0439\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni043A\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni043B\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni043C\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni043D\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni043E\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni043F\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0440\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0441\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0442\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0443\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0444\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0445\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0446\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0447\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0448\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0449\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni044A\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni044B\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni044C\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni044D\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni044E\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni044F\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0450\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0451\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: uni0452\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0453\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0454\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0455\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0456\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0457\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0458\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0459\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni045A\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni045B\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni045C\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni045D\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni045E\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0462\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0463\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni046A\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni046B\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0472\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0473\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0474\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0475\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0490\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0491\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0492\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0493\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0494\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0495\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0496\tContours detected: 3\tExpected: 1 or 2\n\n\t- Glyph name: uni049C\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni049D\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04A0\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04A1\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04A4\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04A5\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Ustraitcy\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: ustraitcy\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Ustraitstrokecy\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: ustraitstrokecy\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni04B8\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04B9\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04BA\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04BB\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04C0\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04C1\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: uni04C2\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni04CF\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04D0\tContours detected: 5\tExpected: 3\n\n\t- Glyph name: uni04D1\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04D2\tContours detected: 7\tExpected: 4\n\n\t- Glyph name: uni04D3\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: uni04D4\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni04D5\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04D6\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni04D7\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04D8\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni04D9\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni04DC\tContours detected: 8\tExpected: 3\n\n\t- Glyph name: uni04DD\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04DE\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04DF\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04E2\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni04E3\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni04E4\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04E5\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04E6\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: uni04E7\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: uni04E8\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04E9\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04EE\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni04EF\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni04F0\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04F1\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04F2\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04F3\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04F4\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04F5\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04F8\tContours detected: 10\tExpected: 5\n\n\t- Glyph name: uni04F9\tContours detected: 10\tExpected: 5\n\n\t- Glyph name: uni051A\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni051B\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni051C\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni051D\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0524\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0525\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Wgrave\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: wgrave\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Wacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: wacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Wdieresis\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: wdieresis\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni1E9E\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Ygrave\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: ygrave\tContours detected: 3\tExpected: 2\n\n\t- Glyph name: endash\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: emdash\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: quoteleft\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: quoteright\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: quotesinglbase\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: quotedblleft\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: quotedblright\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: quotedblbase\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: daggerdbl\tContours detected: 2\tExpected: 1 or 3\n\n\t- Glyph name: bullet\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: ellipsis\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: perthousand\tContours detected: 14\tExpected: 6 or 7\n\n\t- Glyph name: guilsinglleft\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: guilsinglright\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: fraction\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni2070\tContours detected: 4\tExpected: 2 or 3\n\n\t- Glyph name: uni2074\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: uni2075\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: uni2076\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni2077\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni2078\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni2079\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni207D\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni207E\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni2080\tContours detected: 4\tExpected: 2 or 3\n\n\t- Glyph name: uni2081\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni2082\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni2083\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni2084\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: uni2085\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: uni2086\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni2087\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni2088\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni2089\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni208D\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni208E\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni20AA\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni20AE\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni20B8\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni20B9\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni20BD\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni2116\tContours detected: 8\tExpected: 3 or 4\n\n\t- Glyph name: trademark\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: estimated\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni2153\tContours detected: 8\tExpected: 3\n\n\t- Glyph name: uni2154\tContours detected: 8\tExpected: 1 or 3\n\n\t- Glyph name: oneeighth\tContours detected: 11\tExpected: 5\n\n\t- Glyph name: threeeighths\tContours detected: 12\tExpected: 5\n\n\t- Glyph name: fiveeighths\tContours detected: 13\tExpected: 5\n\n\t- Glyph name: seveneighths\tContours detected: 11\tExpected: 5\n\n\t- Glyph name: partialdiff\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni2206\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: product\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: summation\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: minus\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni2215\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: radical\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: infinity\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: integral\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: approxequal\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: notequal\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: lessequal\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: greaterequal\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: lozenge\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: A\tContours detected: 3\tExpected: 2\n\n\t- Glyph name: AE\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: AEacute\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Aacute\tContours detected: 5\tExpected: 3\n\n\t- Glyph name: Abreve\tContours detected: 5\tExpected: 3\n\n\t- Glyph name: Acircumflex\tContours detected: 5\tExpected: 3\n\n\t- Glyph name: Adieresis\tContours detected: 7\tExpected: 4\n\n\t- Glyph name: Agrave\tContours detected: 5\tExpected: 3\n\n\t- Glyph name: Amacron\tContours detected: 5\tExpected: 3\n\n\t- Glyph name: Aogonek\tContours detected: 4\tExpected: 2 or 3\n\n\t- Glyph name: Aring\tContours detected: 7\tExpected: 3 or 4\n\n\t- Glyph name: Atilde\tContours detected: 5\tExpected: 3\n\n\t- Glyph name: B\tContours detected: 6\tExpected: 2 or 3\n\n\t- Glyph name: C\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Cacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ccaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ccircumflex\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Cdotaccent\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: D\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Dcaron\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Dcroat\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: E\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Eacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ebreve\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ecaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ecircumflex\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Edieresis\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Edotaccent\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Egrave\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Emacron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Eng\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Eth\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: F\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: G\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Gbreve\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Gcircumflex\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Gdotaccent\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: H\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Hbar\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Hcircumflex\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: I\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: IJ\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: Iacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ibreve\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Icircumflex\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Idieresis\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Idotaccent\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Igrave\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Imacron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Itilde\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: J\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Jcircumflex\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: L\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Lacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Lcaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ldot\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Lslash\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: M\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: N\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Nacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ncaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ntilde\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: O\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: OE\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Oacute\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Ocircumflex\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Odieresis\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: Ograve\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Ohungarumlaut\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: Omacron\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Oslash\tContours detected: 6\tExpected: 2 or 3\n\n\t- Glyph name: Oslashacute\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: Otilde\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: P\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: Q\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: R\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: Racute\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Rcaron\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: S\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Sacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Scaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Scircumflex\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: T\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Tbar\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Tcaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Thorn\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: U\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Uacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ubreve\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Ucircumflex\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Udieresis\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Ugrave\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Uhungarumlaut\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Umacron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Uogonek\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Uring\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Utilde\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: V\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Wacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Wcircumflex\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Wdieresis\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: Wgrave\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: X\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Y\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: Yacute\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: Ycircumflex\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: Ydieresis\tContours detected: 7\tExpected: 3\n\n\t- Glyph name: Ygrave\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: Z\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: Zacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Zcaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: Zdotaccent\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: a\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: aacute\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: abreve\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: acircumflex\tContours detected: 7\tExpected: 3\n\n\t- Glyph name: acute\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: adieresis\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: ae\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: aeacute\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: agrave\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: amacron\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: ampersand\tContours detected: 6\tExpected: 1, 2 or 3\n\n\t- Glyph name: aogonek\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: approxequal\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: aring\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: asciicircum\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: asciitilde\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: asterisk\tContours detected: 2\tExpected: 1 or 4\n\n\t- Glyph name: at\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: atilde\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: b\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: backslash\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: bar\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: braceleft\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: braceright\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: bracketleft\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: bracketright\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: breve\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: brokenbar\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: bullet\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: c\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: cacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: caron\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: ccaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ccircumflex\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: cdotaccent\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: cedilla\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: circumflex\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: colon\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: comma\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: copyright\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: currency\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: d\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: daggerdbl\tContours detected: 2\tExpected: 1 or 3\n\n\t- Glyph name: dcaron\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: dcroat\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: degree\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: dieresis\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: divide\tContours detected: 4\tExpected: 3\n\n\t- Glyph name: dotaccent\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: dotlessi\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: e\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: eacute\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: ebreve\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: ecaron\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: ecircumflex\tContours detected: 7\tExpected: 3\n\n\t- Glyph name: edieresis\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: edotaccent\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: egrave\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: eight\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: ellipsis\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: emacron\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: emdash\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: endash\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: eng\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: eogonek\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: equal\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: estimated\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: eth\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: exclam\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: exclamdown\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: f\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: fi\tContours detected: 2\tExpected: 3\n\n\t- Glyph name: five\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: fiveeighths\tContours detected: 13\tExpected: 5\n\n\t- Glyph name: four\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: fraction\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: g\tContours detected: 5\tExpected: 2 or 3\n\n\t- Glyph name: gbreve\tContours detected: 7\tExpected: 3 or 4\n\n\t- Glyph name: gcircumflex\tContours detected: 8\tExpected: 3 or 4\n\n\t- Glyph name: gdotaccent\tContours detected: 7\tExpected: 3 or 4\n\n\t- Glyph name: germandbls\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: grave\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: greater\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: greaterequal\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: guillemotleft\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: guillemotright\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: guilsinglleft\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: guilsinglright\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: h\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: hbar\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: hcircumflex\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: hungarumlaut\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: hyphen\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: i\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: iacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ibreve\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: icircumflex\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: idieresis\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: igrave\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ij\tContours detected: 8\tExpected: 3 or 4\n\n\t- Glyph name: imacron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: infinity\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: integral\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: iogonek\tContours detected: 4\tExpected: 2 or 3\n\n\t- Glyph name: itilde\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: j\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: jcircumflex\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: kgreenlandic\tContours detected: 3\tExpected: 1 or 2\n\n\t- Glyph name: l\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: lacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: lcaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ldot\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: less\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: lessequal\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: logicalnot\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: longs\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: lozenge\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: lslash\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: m\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: macron\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: minus\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: multiply\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: n\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: nacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: napostrophe\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ncaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: nine\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: notequal\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: ntilde\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: numbersign\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: o\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: oacute\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: ocircumflex\tContours detected: 7\tExpected: 3\n\n\t- Glyph name: odieresis\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: oe\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: ogonek\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: ograve\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: ohungarumlaut\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: omacron\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: one\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: oneeighth\tContours detected: 11\tExpected: 5\n\n\t- Glyph name: onehalf\tContours detected: 7\tExpected: 3\n\n\t- Glyph name: onequarter\tContours detected: 9\tExpected: 3 or 4\n\n\t- Glyph name: ordmasculine\tContours detected: 4\tExpected: 2 or 3\n\n\t- Glyph name: oslash\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: oslashacute\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: otilde\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: p\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: parenleft\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: parenright\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: partialdiff\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: percent\tContours detected: 10\tExpected: 5\n\n\t- Glyph name: period\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: periodcentered\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: perthousand\tContours detected: 14\tExpected: 6 or 7\n\n\t- Glyph name: plus\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: plusminus\tContours detected: 3\tExpected: 1 or 2\n\n\t- Glyph name: product\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: q\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: question\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: questiondown\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: quotedbl\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: quotedblbase\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: quotedblleft\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: quotedblright\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: quoteleft\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: quoteright\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: quotesinglbase\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: quotesingle\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: r\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: racute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: radical\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: rcaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: registered\tContours detected: 8\tExpected: 3 or 4\n\n\t- Glyph name: ring\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: s\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: sacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: scaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: scircumflex\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: section\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: semicolon\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: seven\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: seveneighths\tContours detected: 11\tExpected: 5\n\n\t- Glyph name: six\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: slash\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: summation\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: t\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: tbar\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: tcaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: thorn\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: three\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: threeeighths\tContours detected: 12\tExpected: 5\n\n\t- Glyph name: threequarters\tContours detected: 10\tExpected: 3 or 4\n\n\t- Glyph name: tilde\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: trademark\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: two\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: u\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ubreve\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ucircumflex\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: udieresis\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: ugrave\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uhungarumlaut\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: umacron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: underscore\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni00B5\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0122\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0123\tContours detected: 7\tExpected: 3 or 4\n\n\t- Glyph name: uni0136\tContours detected: 4\tExpected: 2 or 3\n\n\t- Glyph name: uni0137\tContours detected: 4\tExpected: 2 or 3\n\n\t- Glyph name: uni013B\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni013C\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0145\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0146\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0156\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0157\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0218\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0219\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni021A\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni021B\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0237\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni02BC\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0302\tContours detected: 3\tExpected: 1\n\n\t- Glyph name: uni0304\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0306\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0307\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0308\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni030A\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni030B\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni030C\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0312\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0326\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0327\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0328\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0335\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0337\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0338\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0400\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0401\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0402\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0403\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0404\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0405\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0406\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0407\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0408\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0409\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni040A\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni040B\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni040C\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni040D\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni040E\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni040F\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0410\tContours detected: 3\tExpected: 2\n\n\t- Glyph name: uni0411\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0412\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0413\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0414\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0415\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0416\tContours detected: 4\tExpected: 1\n\n\t- Glyph name: uni0417\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0418\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0419\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni041A\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni041B\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni041C\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni041D\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni041E\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni041F\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0420\tContours detected: 4\tExpected: 1 or 2\n\n\t- Glyph name: uni0421\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0422\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0423\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0424\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0425\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0426\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0427\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0428\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0429\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni042A\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni042B\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni042C\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni042D\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni042E\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni042F\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0430\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0431\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0432\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0433\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0434\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0435\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0436\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0437\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0438\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0439\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni043A\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni043B\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni043C\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni043D\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni043E\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni043F\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0440\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0441\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0442\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0443\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0444\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0445\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0446\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0447\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0448\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0449\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni044A\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni044B\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni044C\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni044D\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni044E\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni044F\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0450\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0451\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: uni0452\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0453\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0454\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0455\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0456\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0457\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0458\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0459\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni045A\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni045B\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni045C\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni045D\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni045E\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0462\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0463\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni046A\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni046B\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni0472\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0473\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni0474\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0475\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0490\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0491\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0492\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0493\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0494\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0495\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0496\tContours detected: 3\tExpected: 1 or 2\n\n\t- Glyph name: uni049C\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni049D\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04A0\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04A1\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04A4\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04A5\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04B8\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04B9\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04BA\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04BB\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04C0\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04C1\tContours detected: 6\tExpected: 2\n\n\t- Glyph name: uni04C2\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni04CF\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni04D0\tContours detected: 5\tExpected: 3\n\n\t- Glyph name: uni04D1\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04D2\tContours detected: 7\tExpected: 4\n\n\t- Glyph name: uni04D3\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: uni04D4\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni04D5\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04D6\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni04D7\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04D8\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni04D9\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: uni04DC\tContours detected: 8\tExpected: 3\n\n\t- Glyph name: uni04DD\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04DE\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04DF\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04E2\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni04E3\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni04E4\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04E5\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04E6\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: uni04E7\tContours detected: 8\tExpected: 4\n\n\t- Glyph name: uni04E8\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04E9\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04EE\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni04EF\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni04F0\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04F1\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04F2\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04F3\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04F4\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04F5\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: uni04F8\tContours detected: 10\tExpected: 5\n\n\t- Glyph name: uni04F9\tContours detected: 10\tExpected: 5\n\n\t- Glyph name: uni051A\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni051B\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni051C\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni051D\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0524\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni0525\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni1E9E\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni20AA\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni20AE\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni20B8\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni20B9\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uni20BD\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni2116\tContours detected: 8\tExpected: 3 or 4\n\n\t- Glyph name: uni2206\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: uni2215\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uogonek\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: uring\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: utilde\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: v\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: w\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: wacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: wcircumflex\tContours detected: 5\tExpected: 2\n\n\t- Glyph name: wdieresis\tContours detected: 6\tExpected: 3\n\n\t- Glyph name: wgrave\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: x\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: yacute\tContours detected: 3\tExpected: 2\n\n\t- Glyph name: ycircumflex\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: ydieresis\tContours detected: 5\tExpected: 3\n\n\t- Glyph name: ygrave\tContours detected: 3\tExpected: 2\n\n\t- Glyph name: z\tContours detected: 2\tExpected: 1\n\n\t- Glyph name: zacute\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: zcaron\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: zdotaccent\tContours detected: 4\tExpected: 2\n\n\t- Glyph name: zero\tContours detected: 4\tExpected: 2 or 3\n [code: contour-count]", "status": "WARN", "traceback": null}], "rationale": "\n Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only\n be constructured in a handful of ways. This means a glyph's contour count\n will only differ slightly amongst different fonts, e.g a 'g' could either\n be 2 or 3 contours, depending on whether its double story or single story.\n\n However, a quotedbl should have 2 contours, unless the font belongs\n to a display family.\n\n This check currently does not cover variable fonts because there's plenty\n of alternative ways of constructing glyphs with multiple outlines for each\n feature in a VarFont. The expected contour count data for this check is\n currently optimized for the typical construction of glyphs in static fonts.\n ", "result": "WARN"}, {"description": "Does the font contain a soft hyphen?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n The 'Soft Hyphen' character (codepoint 0x00AD) is used to mark\n a hyphenation possibility within a word in the absence of or\n overriding dictionary hyphenation.\n\n It is sometimes designed empty with no width (such as a control character),\n sometimes the same as the traditional hyphen, sometimes double encoded with\n the hyphen.\n\n That being said, it is recommended to not include it in the font at all,\n because discretionary hyphenation should be handled at the level of the\n shaping engine, not the font. Also, even if present, the software would\n not display that character.\n\n More discussion at:\n https://typedrawers.com/discussion/2046/special-dash-things-softhyphen-horizontalbar\n ", "result": "PASS"}, {"description": "Does the font contain chws and vchw features?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cjk_font", "status": "SKIP", "traceback": null}], "rationale": "\n The W3C recommends the addition of chws and vchw features to CJK fonts\n to enhance the spacing of glyphs in environments which do not fully support\n JLREQ layout rules.\n\n The chws_tool utility (https://github.com/googlefonts/chws_tool) can be used\n to add these features automatically.\n ", "result": "SKIP"}, {"description": "Ensure component transforms do not perform scaling or rotation.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No glyphs had components with scaling or rotation", "status": "PASS", "traceback": null}], "rationale": "\n Some families have glyphs which have been constructed by using\n transformed components e.g the 'u' being constructed from a flipped 'n'.\n\n From a designers point of view, this sounds like a win (less work).\n However, such approaches can lead to rasterization issues, such as\n having the 'u' not sitting on the baseline at certain sizes after\n running the font through ttfautohint.\n\n Other issues are outlines that end up reversed when only one dimension\n is flipped while the other isn't.\n\n As of July 2019, Marc Foley observed that ttfautohint assigns cvt values\n to transformed glyphs as if they are not transformed and the result is\n they render very badly, and that vttLib does not support flipped components.\n\n When building the font with fontmake, the problem can be fixed by adding\n this to the command line:\n\n --filter DecomposeTransformedComponentsFilter\n ", "result": "PASS"}, {"description": "Ensure no GPOS7 lookups are present.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has no GPOS7 lookups", "status": "PASS", "traceback": null}], "rationale": "\n Versions of fonttools >=4.14.0 (19 August 2020) perform an optimisation on\n chained contextual lookups, expressing GSUB6 as GSUB5 and GPOS8 and GPOS7\n where possible (when there are no suffixes/prefixes for all rules in\n the lookup).\n\n However, makeotf has never generated these lookup types and they are rare\n in practice. Perhaps before of this, Mac's CoreText shaper does not correctly\n interpret GPOS7, meaning that these lookups will be ignored by the shaper,\n and fonts containing these lookups will have unintended positioning errors.\n\n To fix this warning, rebuild the font with a recent version of fonttools.\n ", "result": "PASS", "severity": 9}, {"description": "Ensure that the font can be rasterized by FreeType.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font can be rasterized by FreeType.", "status": "PASS", "traceback": null}], "rationale": "\n Malformed fonts can cause FreeType to crash.\n ", "result": "PASS", "severity": 10}, {"description": "Font has the proper sfntVersion value?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has the correct sfntVersion value.", "status": "PASS", "traceback": null}], "rationale": "\n OpenType fonts that contain TrueType outlines should use the value of 0x00010000\n for the sfntVersion. OpenType fonts containing CFF data (version 1 or 2) should\n use 0x4F54544F ('OTTO', when re-interpreted as a Tag) for sfntVersion.\n\n Fonts with the wrong sfntVersion value are rejected by FreeType.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/otff#table-directory\n ", "result": "PASS", "severity": 10}, {"description": "Space and non-breaking space have the same width?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Space and non-breaking space have the same width.", "status": "PASS", "traceback": null}], "rationale": "\n If the space and nbspace glyphs have different widths, then Google Workspace\n has problems with the font.\n\n The nbspace is used to replace the space character in multiple situations in\n documents; such as the space before punctuation in languages that do that. It\n avoids the punctuation to be separated from the last word and go to next line.\n\n This is automatic substitution by the text editors, not by fonts. It's also used\n by designers in text composition practice to create nicely shaped paragraphs.\n If the space and the nbspace are not the same width, it breaks the text\n composition of documents.\n ", "result": "PASS"}, {"description": "Detect any interpolation issues in the font.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n When creating a variable font, the designer must make sure that corresponding\n paths have the same start points across masters, as well as that corresponding\n component shapes are placed in the same order within a glyph across masters.\n If this is not done, the glyph will not interpolate correctly.\n\n Here we check for the presence of potential interpolation errors using the\n fontTools.varLib.interpolatable module.\n ", "result": "SKIP", "severity": 4}, {"description": "Check math signs have the same width.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The most common width is 538 among a set of 2 math glyphs.\nThe following math glyphs have a different width, though:\n\nWidth = 594:\nplus\n\nWidth = 563:\nequal\n\nWidth = 564:\nlogicalnot\n\nWidth = 576:\nplusminus\n\nWidth = 639:\nmultiply\n\nWidth = 517:\ndivide\n\nWidth = 642:\nminus\n\nWidth = 551:\napproxequal, notequal\n\nWidth = 556:\nlessequal, greaterequal\n [code: width-outliers]", "status": "WARN", "traceback": null}], "rationale": "\n It is a common practice to have math signs sharing the same width\n (preferably the same width as tabular figures accross the entire font family).\n\n This probably comes from the will to avoid additional tabular math signs\n knowing that their design can easily share the same width.\n ", "result": "WARN"}, {"description": "Checking Vertical Metric Linegaps.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 sTypoLineGap and hhea lineGap are both 0.", "status": "PASS", "traceback": null}], "rationale": "\n The LineGap value is a space added to the line height created by the union\n of the (typo/hhea)Ascender and (typo/hhea)Descender. It is handled differently\n according to the environment.\n\n This leading value will be added above the text line in most desktop apps.\n It will be shared above and under in web browsers, and ignored in Windows\n if Use_Typo_Metrics is disabled.\n\n For better linespacing consistency across platforms,\n (typo/hhea)LineGap values must be 0.\n ", "result": "PASS"}, {"description": "Checking STAT table entries in static fonts.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n Adobe feature syntax allows for the definition of a STAT table. Fonts built\n with a hand-coded STAT table in feature syntax may be built either as static\n or variable, but will end up with the same STAT table.\n\n This is a problem, because a STAT table which works on variable fonts\n will not be appropriate for static instances. The examples in the OpenType spec\n of non-variable fonts with a STAT table show that the table entries must be\n restricted to those entries which refer to the static font's position in\n the designspace. i.e. a Regular weight static should only have the following\n entry for the weight axis:\n\n \n \n \n \n\n However, if the STAT table intended for a variable font is compiled into a\n static, it will have many entries for this axis. In this case, Windows will\n read the first entry only, causing all instances to report themselves\n as \"Thin Condensed\".\n ", "result": "SKIP"}, {"description": "Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Looks good!", "status": "PASS", "traceback": null}], "rationale": "\n Lcaron, dcaron, lcaron, tcaron should NOT be composed with quoteright\n or quotesingle or comma or caron(comb). It should be composed with a\n distinctive glyph which doesn't look like an apostrophe.\n\n Source:\n https://ilovetypography.com/2009/01/24/on-diacritics/\n http://diacritics.typo.cz/index.php?id=5\n https://www.typotheque.com/articles/lcaron\n ", "result": "PASS"}], "key": ["", null, null], "result": {"INFO": 2, "PASS": 25, "SKIP": 7, "WARN": 2}}, {"checks": [{"description": "Is the CFF subr/gsubr call depth > 10?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff", "status": "SKIP", "traceback": null}], "rationale": "\n Per \"The Type 2 Charstring Format, Technical Note #5177\",\n the \"Subr nesting, stack limit\" is 10.\n ", "result": "SKIP"}, {"description": "Is the CFF2 subr/gsubr call depth > 10?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff2", "status": "SKIP", "traceback": null}], "rationale": "\n Per \"The CFF2 CharString Format\", the \"Subr nesting, stack limit\" is 10.\n ", "result": "SKIP"}, {"description": "Does the font use deprecated CFF operators or operations?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff", "status": "SKIP", "traceback": null}], "rationale": "\n The 'dotsection' operator and the use of 'endchar' to build accented characters\n from the Adobe Standard Encoding Character Set (\"seac\") are deprecated in CFF.\n Adobe recommends repairing any fonts that use these, especially endchar-as-seac,\n because a rendering issue was discovered in Microsoft Word with a font that\n makes use of this operation. The check treats that usage as a FAIL.\n There are no known ill effects of using dotsection, so that check is a WARN.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"SKIP": 3}}, {"checks": [{"description": "Fonts have equal unicode encodings?", "key": ["", "", []], "logs": [{"message": "Fonts have equal unicode encodings.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Make sure all font files have the same version value.", "key": ["", "", []], "logs": [{"message": "All font files have the same version.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking unitsPerEm value is reasonable.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Filtered: Google Fonts has a stricter policy which is enforced by com.google.fonts/check/unitsperem_strict", "status": "SKIP", "traceback": null}], "rationale": "\n According to the OpenType spec:\n\n The value of unitsPerEm at the head table must be a value\n between 16 and 16384. Any value in this range is valid.\n\n In fonts that have TrueType outlines, a power of 2 is recommended\n as this allows performance optimizations in some rasterizers.\n\n But 1000 is a commonly used value. And 2000 may become\n increasingly more common on Variable Fonts.\n ", "result": "SKIP"}, {"description": "Checking font version fields (head and name table).", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All font version fields match.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking head.macStyle value.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "head macStyle ITALIC bit is properly set.", "status": "PASS", "traceback": null}, {"message": "head macStyle BOLD bit is properly set.", "status": "PASS", "traceback": null}], "rationale": "\n The values of the flags on the macStyle entry on the 'head' OpenType table\n that describe whether a font is bold and/or italic must be coherent with the\n actual style of the font as inferred by its filename.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3, "SKIP": 1}}, {"checks": [{"description": "Fonts have consistent PANOSE proportion?", "key": ["", "", []], "logs": [{"message": "Fonts have consistent PANOSE proportion.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Fonts have consistent PANOSE family type?", "key": ["", "", []], "logs": [{"message": "Fonts have consistent PANOSE family type.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check that OS/2.fsSelection bold & italic settings are unique for each NameID1", "key": ["", "", []], "logs": [{"message": "The OS/2.fsSelection bold & italic settings were unique within each compatible family group.", "status": "PASS", "traceback": null}], "rationale": "\n Per the OpenType spec: name ID 1 'is used in combination with Font Subfamily\n name (name ID 2), and should be shared among at most four fonts that differ\n only in weight or style.\n\n This four-way distinction should also be reflected in the OS/2.fsSelection\n field, using bits 0 and 5.\n ", "result": "PASS"}, {"description": "Check if OS/2 xAvgCharWidth is correct.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 xAvgCharWidth value is correct.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check if OS/2 fsSelection matches head macStyle bold and italic bits.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The OS/2.fsSelection and head.macStyle bold and italic settings match.", "status": "PASS", "traceback": null}], "rationale": "\n The bold and italic bits in OS/2.fsSelection must match the bold and italic\n bits in head.macStyle per the OpenType spec.\n ", "result": "PASS"}, {"description": "Check code page character ranges", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "At least one code page is defined.", "status": "PASS", "traceback": null}], "rationale": "\n At least some programs (such as Word and Sublime Text) under Windows 7\n do not recognize fonts unless code page bits are properly set on the\n ulCodePageRange1 (and/or ulCodePageRange2) fields of the OS/2 table.\n\n More specifically, the fonts are selectable in the font menu, but whichever\n Windows API these applications use considers them unsuitable for any\n character set, so anything set in these fonts is rendered with Arial as a\n fallback font.\n\n This check currently does not identify which code pages should be set.\n Auto-detecting coverage is not trivial since the OpenType specification\n leaves the interpretation of whether a given code page is \"functional\"\n or not open to the font developer to decide.\n\n So here we simply detect as a FAIL when a given font has no code page\n declared at all.\n ", "result": "PASS"}, {"description": "Checking OS/2 achVendID against configuration.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Add the `vendor_id` key to a `fontbakery.yaml` file on your font project directory to enable this check.\nYou'll also need to use the `--configuration` flag when invoking fontbakery.", "status": "SKIP", "traceback": null}], "rationale": "\n When a font project's Vendor ID is specified explicitly on FontBakery's\n configuration file, all binaries must have a matching vendor identifier\n value in the OS/2 table.\n ", "result": "SKIP"}, {"description": "Checking OS/2 fsSelection value.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "OS/2 fsSelection REGULAR bit is properly set.", "status": "PASS", "traceback": null}, {"message": "OS/2 fsSelection ITALIC bit is properly set.", "status": "PASS", "traceback": null}, {"message": "OS/2 fsSelection BOLD bit is properly set.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 7, "SKIP": 1}}, {"checks": [{"description": "Fonts have consistent underline thickness?", "key": ["", "", []], "logs": [{"message": "Fonts have consistent underline thickness.", "status": "PASS", "traceback": null}], "rationale": "\n Dave C Lemon (Adobe Type Team) recommends setting the underline thickness to be\n consistent across the family.\n\n If thicknesses are not family consistent, words set on the same line which have\n different styles look strange.\n ", "result": "PASS"}, {"description": "Font has correct post table version?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font has an acceptable post format 2.0 table version.", "status": "PASS", "traceback": null}], "rationale": "\n Format 2.5 of the 'post' table was deprecated in OpenType 1.3 and\n should not be used.\n\n According to Thomas Phinney, the possible problem with post format 3\n is that under the right combination of circumstances, one can generate\n PDF from a font with a post format 3 table, and not have accurate backing\n store for any text that has non-default glyphs for a given codepoint.\n\n It will look fine but not be searchable. This can affect Latin text with\n high-end typography, and some complex script writing systems, especially\n with higher-quality fonts. Those circumstances generally involve creating\n a PDF by first printing a PostScript stream to disk, and then creating a\n PDF from that stream without reference to the original source document.\n There are some workflows where this applies,but these are not common\n use cases.\n\n Apple recommends against use of post format version 4 as \"no longer\n necessary and should be avoided\". Please see the Apple TrueType reference\n documentation for additional details.\n\n https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6post.html\n\n Acceptable post format versions are 2 and 3 for TTF and OTF CFF2 builds,\n and post format 3 for CFF builds.\n ", "result": "PASS"}, {"description": "Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Value of post.italicAngle is 0.0 with style=\"Regular\".", "status": "PASS", "traceback": null}], "rationale": "\n The 'post' table italicAngle property should be a reasonable amount, likely\n not more than 30\u00b0. Note that in the OpenType specification, the value is\n negative for a rightward lean.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/post\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "Verify that each group of fonts with the same nameID 1 has maximum of 4 fonts.", "key": ["", "", []], "logs": [{"message": "There were no more than 4 fonts per family name.", "status": "PASS", "traceback": null}], "rationale": "\n Per the OpenType spec:\n\n 'The Font Family name [...] should be shared among at most four fonts that\n differ only in weight or style [...]'\n ", "result": "PASS"}, {"description": "Verify that family names in the name table are consistent across all fonts in the family. Checks Typographic Family name (nameID 16) if present, otherwise uses Font Family name (nameID 1)", "key": ["", "", []], "logs": [{"message": "Font family names are consistent across the family.", "status": "PASS", "traceback": null}], "rationale": "\n Per the OpenType spec:\n * \"...many existing applications that use this pair of names assume that a\n Font Family name is shared by at most four fonts that form a font\n style-linking group\"\n * \"For extended typographic families that includes fonts other than the\n four basic styles(regular, italic, bold, bold italic), it is strongly\n recommended that name IDs 16 and 17 be used in fonts to create an\n extended, typographic grouping.\"\n * \"If name ID 16 is absent, then name ID 1 is considered to be the\n typographic family name.\"\n\n https://learn.microsoft.com/en-us/typography/opentype/spec/name\n\n Fonts within a font family all must have consistent names\n in the Typographic Family name (nameID 16)\n or Font Family name (nameID 1), depending on which it uses.\n\n Inconsistent font/typographic family names across fonts in a family\n can result in unexpected behaviors, such as broken style linking.\n ", "result": "PASS"}, {"description": "Check name table for empty records.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No empty name table records found.", "status": "PASS", "traceback": null}], "rationale": "\n Check the name table for empty records,\n as this can cause problems in Adobe apps.\n ", "result": "PASS"}, {"description": "Description strings in the name table must not contain copyright info.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Description strings in the name table do not contain any copyright string.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Checking correctness of monospaced metadata.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font is not monospaced and all related metadata look good. [code: good]", "status": "PASS", "traceback": null}], "rationale": "\n There are various metadata in the OpenType spec to specify if a font is\n monospaced or not. If the font is not truly monospaced, then no monospaced\n metadata should be set (as sometimes they mistakenly are...)\n\n Requirements for monospace fonts:\n\n * post.isFixedPitch - \"Set to 0 if the font is proportionally spaced,\n non-zero if the font is not proportionally spaced (monospaced)\"\n (https://www.microsoft.com/typography/otspec/post.htm)\n\n * hhea.advanceWidthMax must be correct, meaning no glyph's width value\n is greater. (https://www.microsoft.com/typography/otspec/hhea.htm)\n\n * OS/2.panose.bProportion must be set to 9 (monospace) on latin text fonts.\n\n * OS/2.panose.bSpacing must be set to 3 (monospace) on latin hand written\n or latin symbol fonts.\n\n * Spec says: \"The PANOSE definition contains ten digits each of which currently\n describes up to sixteen variations. Windows uses bFamilyType, bSerifStyle\n and bProportion in the font mapper to determine family type. It also uses\n bProportion to determine if the font is monospaced.\"\n (https://www.microsoft.com/typography/otspec/os2.htm#pan\n https://monotypecom-test.monotype.de/services/pan2)\n\n * OS/2.xAvgCharWidth must be set accurately.\n \"OS/2.xAvgCharWidth is used when rendering monospaced fonts,\n at least by Windows GDI\"\n (http://typedrawers.com/discussion/comment/15397/#Comment_15397)\n\n Also we should report an error for glyphs not of average width.\n\n\n Please also note:\n\n Thomas Phinney told us that a few years ago (as of December 2019), if you gave\n a font a monospace flag in Panose, Microsoft Word would ignore the actual\n advance widths and treat it as monospaced.\n\n Source: https://typedrawers.com/discussion/comment/45140/#Comment_45140\n ", "result": "PASS"}, {"description": "Does full font name begin with the font family name?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Full font name begins with the font family name.", "status": "PASS", "traceback": null}], "rationale": "\n The FULL_FONT_NAME entry in the \u2018name\u2019 table should start with the same string\n as the Family Name (FONT_FAMILY_NAME, TYPOGRAPHIC_FAMILY_NAME or\n WWS_FAMILY_NAME).\n\n If the Family Name is not included as the first part of the Full Font Name, and\n the user embeds the font in a document using a Microsoft Office app, the app\n will fail to render the font when it opens the document again.\n\n NOTE: Up until version 1.5, the OpenType spec included the following exception\n in the definition of Full Font Name:\n\n \"An exception to the [above] definition of Full font name is for Microsoft\n platform strings for CFF OpenType fonts: in this case, the Full font name\n string must be identical to the PostScript FontName in the CFF Name INDEX.\"\n\n https://docs.microsoft.com/en-us/typography/opentype/otspec150/name#name-ids\n ", "result": "PASS"}, {"description": "PostScript name follows OpenType specification requirements?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "PostScript name follows requirements. [code: psname-ok]", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Font follows the family naming recommendations?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font follows the family naming recommendations.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "CFF table FontName must match name table ID 6 (PostScript name).", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_cff", "status": "SKIP", "traceback": null}], "rationale": "\n The PostScript name entries in the font's 'name' table should match\n the FontName string in the 'CFF ' table.\n\n The 'CFF ' table has a lot of information that is duplicated in other tables.\n This information should be consistent across tables, because there's\n no guarantee which table an app will get the data from.\n ", "result": "SKIP"}, {"description": "Name table ID 6 (PostScript name) must be consistent across platforms.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Entries in the \"name\" table for ID 6 (PostScript name) are consistent.", "status": "PASS", "traceback": null}], "rationale": "\n The PostScript name entries in the font's 'name' table should be\n consistent across platforms.\n\n This is the TTF/CFF2 equivalent of the CFF 'name/postscript_vs_cff' check.\n ", "result": "PASS"}, {"description": "Check name table IDs 1, 2, 16, 17 to conform to Italic style.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font is not Italic.", "status": "SKIP", "traceback": null}], "rationale": "\n This check ensures that several entries in the name table\n conform to the font's Upright or Italic style,\n namely IDs 1 & 2 as well as 16 & 17 if they're present.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"PASS": 9, "SKIP": 2}}, {"checks": [{"description": "Does the number of glyphs in the loca table match the maxp table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "'loca' table matches numGlyphs in 'maxp' table.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check hhea.caretSlopeRise and hhea.caretSlopeRun", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "hhea.caretSlopeRise and hhea.caretSlopeRun match with post.italicAngle.", "status": "PASS", "traceback": null}], "rationale": "\n Checks whether hhea.caretSlopeRise and hhea.caretSlopeRun\n match with post.italicAngle.\n\n For Upright fonts, you can set hhea.caretSlopeRise to 1\n and hhea.caretSlopeRun to 0.\n\n For Italic fonts, you can set hhea.caretSlopeRise to head.unitsPerEm\n and calculate hhea.caretSlopeRun like this:\n round(math.tan(\n math.radians(-1 * font[\"post\"].italicAngle)) * font[\"head\"].unitsPerEm)\n\n This check allows for a 0.1\u00b0 rounding difference between the Italic angle\n as calculated by the caret slope and post.italicAngle\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 2}}, {"checks": [{"description": "Does the font have a DSIG table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "ok", "status": "PASS", "traceback": null}], "rationale": "\n Microsoft Office 2013 and below products expect fonts to have a digital\n signature declared in a DSIG table in order to implement OpenType features.\n The EOL date for Microsoft Office 2013 products is 4/11/2023.\n This issue does not impact Microsoft Office 2016 and above products.\n\n As we approach the EOL date, it is now considered better to\n completely remove the table.\n\n But if you still want your font to support OpenType features on Office 2013,\n then you may find it handy to add a fake signature on a placeholder DSIG table\n by running one of the helper scripts provided at\n https://github.com/googlefonts/gftools\n\n Reference: https://github.com/fonttools/fontbakery/issues/1845\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Check glyphs in mark glyph class are non-spacing.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not has spacing glyphs in the GDEF mark glyph class.", "status": "PASS", "traceback": null}], "rationale": "\n Glyphs in the GDEF mark glyph class should be non-spacing.\n\n Spacing glyphs in the GDEF mark glyph class may have incorrect anchor\n positioning that was only intended for building composite glyphs during design.\n ", "result": "PASS"}, {"description": "Check mark characters are in GDEF mark glyph class.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not have mark characters not in the GDEF mark glyph class.", "status": "PASS", "traceback": null}], "rationale": "\n Mark characters should be in the GDEF mark glyph class.\n ", "result": "PASS"}, {"description": "Check GDEF mark glyph class doesn't have characters that are not marks.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not have non-mark characters in the GDEF mark glyph class.", "status": "PASS", "traceback": null}], "rationale": "\n Glyphs in the GDEF mark glyph class become non-spacing and may be repositioned\n if they have mark anchors.\n\n Only combining mark glyphs should be in that class. Any non-mark glyph\n must not be in that class, in particular spacing glyphs.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "Does GPOS table have kerning information? This check skips monospaced fonts as defined by post.isFixedPitch value", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "GPOS table check for kerning information passed.", "status": "PASS", "traceback": null}], "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Is there a usable \"kern\" table declared in the font?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Font does not declare an optional \"kern\" table.", "status": "PASS", "traceback": null}], "rationale": "\n Even though all fonts should have their kerning implemented in the GPOS table,\n there may be kerning info at the kern table as well.\n\n Some applications such as MS PowerPoint require kerning info on the kern table.\n More specifically, they require a format 0 kern subtable from a kern table\n version 0 with only glyphs defined in the cmap table, which is the only one\n that Windows understands (and which is also the simplest and more limited\n of all the kern subtables).\n\n Google Fonts ingests fonts made for download and use on desktops, and does\n all web font optimizations in the serving pipeline (using libre libraries\n that anyone can replicate.)\n\n Ideally, TTFs intended for desktop users (and thus the ones intended for\n Google Fonts) should have both KERN and GPOS tables.\n\n Given all of the above, we currently treat kerning on a v0 kern table\n as a good-to-have (but optional) feature.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 1}}, {"checks": [{"description": "Is there any unused data at the end of the glyf table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "There is no unused data at the end of the glyf table.", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check for points out of bounds.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "All glyph paths have coordinates within bounds!", "status": "PASS", "traceback": null}], "result": "PASS"}, {"description": "Check glyphs do not have duplicate components which have the same x,y coordinates.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Glyphs do not contain duplicate components which have the same x,y coordinates.", "status": "PASS", "traceback": null}], "rationale": "\n There have been cases in which fonts had faulty double quote marks, with each\n of them containing two single quote marks as components with the same\n x, y coordinates which makes them visually look like single quote marks.\n\n This check ensures that glyphs do not contain duplicate components\n which have the same x,y coordinates.\n ", "result": "PASS"}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "The variable font 'wght' (Weight) axis coordinate must be 400 on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wght_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wght' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght\n\n If a variable font has a 'wght' (Weight) axis, then the coordinate of\n its 'Regular' instance is required to be 400.\n ", "result": "SKIP"}, {"description": "The variable font 'wdth' (Width) axis coordinate must be 100 on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wdth_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wdth' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wdth\n\n If a variable font has a 'wdth' (Width) axis, then the coordinate of\n its 'Regular' instance is required to be 100.\n ", "result": "SKIP"}, {"description": "The variable font 'slnt' (Slant) axis coordinate must be zero on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_slnt_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'slnt' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_slnt\n\n If a variable font has a 'slnt' (Slant) axis, then the coordinate of\n its 'Regular' instance is required to be zero.\n ", "result": "SKIP"}, {"description": "The variable font 'ital' (Italic) axis coordinate must be zero on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_ital_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'ital' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_ital\n\n If a variable font has a 'ital' (Italic) axis, then the coordinate of\n its 'Regular' instance is required to be zero.\n ", "result": "SKIP"}, {"description": "The variable font 'opsz' (Optical Size) axis coordinate should be between 10 and 16 on the 'Regular' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_opsz_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'opsz' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_opsz\n\n If a variable font has an 'opsz' (Optical Size) axis, then\n the coordinate of its 'Regular' instance is recommended to be\n a value in the range 10 to 16.\n ", "result": "SKIP"}, {"description": "The variable font 'wght' (Weight) axis coordinate must be 700 on the 'Bold' instance.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wght_axis", "status": "SKIP", "traceback": null}], "rationale": "\n The Open-Type spec's registered\n design-variation tag 'wght' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght\n does not specify a required value for the 'Bold' instance of a variable font.\n\n But Dave Crossland suggested that we should enforce\n a required value of 700 in this case (NOTE: a distinction\n is made between \"no bold instance present\" vs \"bold instance is present\n but its wght coordinate is not == 700\").\n ", "result": "SKIP"}, {"description": "The variable font 'wght' (Weight) axis coordinate must be within spec range of 1 to 1000 on all instances.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wght_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wght' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght\n\n On the 'wght' (Weight) axis, the valid coordinate range is 1-1000.\n ", "result": "SKIP"}, {"description": "The variable font 'wdth' (Width) axis coordinate must strictly greater than zero.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_wdth_axis", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's\n registered design-variation tag 'wdth' available at\n https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wdth\n\n On the 'wdth' (Width) axis, the valid numeric range is strictly greater than\n zero.\n ", "result": "SKIP"}, {"description": "The variable font 'slnt' (Slant) axis coordinate specifies positive values in its range?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font, has_slnt_axis", "status": "SKIP", "traceback": null}], "rationale": "\n The OpenType spec says at\n https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_slnt that:\n\n [...] the scale for the Slant axis is interpreted as the angle of slant\n in counter-clockwise degrees from upright. This means that a typical,\n right-leaning oblique design will have a negative slant value. This matches\n the scale used for the italicAngle field in the post table.\n ", "result": "SKIP"}, {"description": "Validates that the value of axisNameID used by each VariationAxisRecord is greater than 255 and less than 32768.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The axisNameID field provides a name ID that can be used to obtain strings\n from the 'name' table that can be used to refer to the axis in application\n user interfaces. The name ID must be greater than 255 and less than 32768.\n ", "result": "SKIP"}, {"description": "Validates that the value of subfamilyNameID used by each InstanceRecord is 2, 17, or greater than 255 and less than 32768.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The subfamilyNameID field provides a name ID that can be used to obtain\n strings from the 'name' table that can be treated as equivalent to name\n ID 17 (typographic subfamily) strings for the given instance. Values of\n 2 or 17 can be used; otherwise, values must be greater than 255 and less\n than 32768.\n ", "result": "SKIP"}, {"description": "Validates that the value of postScriptNameID used by each InstanceRecord is 6, 0xFFFF, or greater than 255 and less than 32768.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The postScriptNameID field provides a name ID that can be used to obtain\n strings from the 'name' table that can be treated as equivalent to name\n ID 6 (PostScript name) strings for the given instance. Values of 6 and\n 0xFFFF can be used; otherwise, values must be greater than 255 and less\n than 32768.\n ", "result": "SKIP"}, {"description": "Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9.1\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n The default instance of a font is that instance for which the coordinate\n value of each axis is the defaultValue specified in the corresponding\n variation axis record. An instance record is not required for the default\n instance, though an instance record can be provided. When enumerating named\n instances, the default instance should be enumerated even if there is no\n corresponding instance record. If an instance record is included for the\n default instance (that is, an instance record has coordinates set to default\n values), then the nameID value should be set to either 2 or 17 or to a\n name ID with the same value as name ID 2 or 17. Also, if a postScriptNameID is\n included in instance records, and the postScriptNameID value should be set\n to 6 or to a name ID with the same value as name ID 6.\n ", "result": "SKIP"}, {"description": "Validates that all of the instance records in a given font have the same size.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n All of the instance records in a given font must be the same size, with\n all either including or omitting the postScriptNameID field. [...]\n If the value is 0xFFFF, then the value is ignored, and no PostScript name\n equivalent is provided for the instance.\n ", "result": "SKIP"}, {"description": "Validates that all of the instance records in a given font have distinct data.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the 'fvar' documentation in OpenType spec v1.9\n https://docs.microsoft.com/en-us/typography/opentype/spec/fvar\n\n All of the instance records in a font should have distinct coordinates\n and distinct subfamilyNameID and postScriptName ID values. If two or more\n records share the same coordinates, the same nameID values or the same\n postScriptNameID values, then all but the first can be ignored.\n ", "result": "SKIP"}, {"description": "Validate foundry-defined design-variation axis tag names.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the Open-Type spec's syntactic requirements for\n foundry-defined design-variation axis tags available at\n https://learn.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg\n\n Foundry-defined tags must begin with an uppercase letter\n and must use only uppercase letters or digits.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"SKIP": 16}}, {"checks": [{"description": "Ensure VFs have 'ital' STAT axis.", "key": ["", "", []], "logs": [{"message": "OK", "status": "PASS", "traceback": null}], "rationale": "\n Check that related Upright and Italic VFs have a\n 'ital' axis in STAT table.\n ", "result": "PASS"}, {"description": "All fvar axes have a correspondent Axis Record on STAT table?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: is_variable_font", "status": "SKIP", "traceback": null}], "rationale": "\n According to the OpenType spec, there must be an Axis Record\n for every axis defined in the fvar table.\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/stat#axis-records\n ", "result": "SKIP"}, {"description": "STAT table has Axis Value tables?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n According to the OpenType spec, in a variable font, it is strongly recommended\n that axis value tables be included for every element of typographic subfamily\n names for all of the named instances defined in the 'fvar' table.\n\n Axis value tables are particularly important for variable fonts, but can also\n be used in non-variable fonts. When used in non-variable fonts, axis value\n tables for particular values should be implemented consistently across fonts\n in the family.\n\n If present, Format 4 Axis Value tables are checked to ensure they have more than\n one AxisValueRecord (a strong recommendation from the OpenType spec).\n\n https://docs.microsoft.com/en-us/typography/opentype/spec/stat#axis-value-tables\n ", "result": "SKIP"}, {"description": "Ensure 'ital' STAT axis is boolean value (derived from com.google.fonts/check/italic_axis_in_stat_is_boolean)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n Check that the value of the 'ital' STAT axis is boolean (either 0 or 1),\n and elided for the Upright and not elided for the Italic,\n and that the Upright is linked to the Italic.\n ", "result": "SKIP"}, {"description": "Ensure 'ital' STAT axis is last. (derived from com.google.fonts/check/italic_axis_last)", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Unfulfilled Conditions: has_STAT_table", "status": "SKIP", "traceback": null}], "rationale": "\n Check that the 'ital' STAT axis is last in axis order.\n ", "result": "SKIP"}], "key": ["", null, null], "result": {"PASS": 1, "SKIP": 4}}, {"checks": [{"description": "Does the font have any invalid feature tags?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No invalid feature tags were found", "status": "PASS", "traceback": null}], "rationale": "\n Incorrect tags can be indications of typos, leftover debugging code or\n questionable approaches, or user error in the font editor. Such typos can\n cause features and language support to fail to work as intended.\n ", "result": "PASS", "severity": 8}, {"description": "Does the font have any invalid script tags?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No invalid script tags were found", "status": "PASS", "traceback": null}], "rationale": "\n Incorrect script tags can be indications of typos, leftover debugging code\n or questionable approaches, or user error in the font editor. Such typos can\n cause features and language support to fail to work as intended.\n ", "result": "PASS", "severity": 8}, {"description": "Does the font have any invalid language tags?", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No invalid language tags were found", "status": "PASS", "traceback": null}], "rationale": "\n Incorrect language tags can be indications of typos, leftover debugging code\n or questionable approaches, or user error in the font editor. Such typos can\n cause features and language support to fail to work as intended.\n ", "result": "PASS", "severity": 8}], "key": ["", null, null], "result": {"PASS": 3}}, {"checks": [{"description": "Check that texts shape as per expectation", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Shaping test directory not defined in configuration file", "status": "SKIP", "traceback": null}], "rationale": "\n Fonts with complex layout rules can benefit from regression tests to ensure\n that the rules are behaving as designed. This checks runs a shaping test\n suite and compares expected shaping against actual shaping, reporting\n any differences.\n\n Shaping test suites should be written by the font engineer and referenced\n in the FontBakery configuration file. For more information about write\n shaping test files and how to configure FontBakery to read the shaping\n test suites, see https://simoncozens.github.io/tdd-for-otl/\n ", "result": "SKIP"}, {"description": "Check that no forbidden glyphs are found while shaping", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Shaping test directory not defined in configuration file", "status": "SKIP", "traceback": null}], "rationale": "\n Fonts with complex layout rules can benefit from regression tests to ensure\n that the rules are behaving as designed. This checks runs a shaping test\n suite and reports if any glyphs are generated in the shaping which should\n not be produced. (For example, .notdef glyphs, visible viramas, etc.)\n\n Shaping test suites should be written by the font engineer and referenced in\n the FontBakery configuration file. For more information about write shaping\n test files and how to configure FontBakery to read the shaping test suites,\n see https://simoncozens.github.io/tdd-for-otl/\n ", "result": "SKIP"}, {"description": "Check that no collisions are found while shaping", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "Shaping test directory not defined in configuration file", "status": "SKIP", "traceback": null}], "rationale": "\n Fonts with complex layout rules can benefit from regression tests to ensure\n that the rules are behaving as designed. This checks runs a shaping test\n suite and reports instances where the glyphs collide in unexpected ways.\n\n Shaping test suites should be written by the font engineer and referenced\n in the FontBakery configuration file. For more information about write\n shaping test files and how to configure FontBakery to read the shaping\n test suites, see https://simoncozens.github.io/tdd-for-otl/\n ", "result": "SKIP"}, {"description": "Ensure dotted circle glyph is present and can attach marks.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "No dotted circle glyph present [code: missing-dotted-circle]", "status": "WARN", "traceback": null}], "rationale": "\n The dotted circle character (U+25CC) is inserted by shaping engines before\n mark glyphs which do not have an associated base, especially in the context\n of broken syllabic clusters.\n\n For fonts containing combining marks, it is recommended that the dotted circle\n character be included so that these isolated marks can be displayed properly;\n for fonts supporting complex scripts, this should be considered mandatory.\n\n Additionally, when a dotted circle glyph is present, it should be able to\n display all marks correctly, meaning that it should contain anchors for all\n attaching marks.\n ", "result": "WARN", "severity": 3}, {"description": "Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.", "filename": "/home/runner/work/gf-dashboard/gf-dashboard/fonts/ofl/rubikscribble/RubikScribble-Regular.ttf", "key": ["", "", [["font", 0]]], "logs": [{"message": "The dot of soft dotted characters used in orthographies _must_ disappear in the following strings: \u012f\u0300 \u012f\u0301 \u012f\u0302 \u012f\u0303 \u012f\u0304 \u012f\u030c \u0456\u0301\n\nThe dot of soft dotted characters _should_ disappear in other cases, for example: i\u0326\u0312 j\u0326\u0312 \u012f\u0306 \u012f\u0307 \u012f\u0308 \u012f\u030a \u012f\u030b \u012f\u0312 \u012f\u0326\u0312 \u012f\u0327\u0312 \u012f\u0328\u0312 \u012f\u0335\u0300 \u012f\u0335\u0301 \u012f\u0335\u0302 \u012f\u0335\u0303 \u012f\u0335\u0304 \u012f\u0335\u0306 \u012f\u0335\u0307 \u012f\u0335\u0308 \u012f\u0335\u030a\n\nYour font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers), Dutch (Latn, 31,709,104 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Belarusian (Cyrl, 10,064,517 speakers). \n\nYour font does *not* cover the following languages that require the soft-dotted feature: Sar (Latn, 500,000 speakers), Nateni (Latn, 100,000 speakers), Dan (Latn, 1,099,244 speakers), Aghem (Latn, 38,843 speakers), Ma\u2019di (Latn, 584,000 speakers), Mango (Latn, 77,000 speakers), Gulay (Latn, 250,478 speakers), Igbo (Latn, 27,823,640 speakers), Ebira (Latn, 2,200,000 speakers), Lugbara (Latn, 2,200,000 speakers), Kom (Latn, 360,685 speakers), Avokaya (Latn, 100,000 speakers), Basaa (Latn, 332,940 speakers), Koonzime (Latn, 40,000 speakers), Ejagham (Latn, 120,000 speakers), Navajo (Latn, 166,319 speakers). [code: soft-dotted]", "status": "WARN", "traceback": null}], "rationale": "\n An accent placed on characters with a \"soft dot\", like i or j, causes\n the dot to disappear.\n An explicit dot above can be added where required.\n See \"Diacritics on i and j\" in Section 7.1, \"Latin\" in The Unicode Standard.\n\n Characters with the Soft_Dotted property are listed in\n https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n\n See also:\n https://googlefonts.github.io/gf-guide/diacritics.html#soft-dotted-glyphs\n ", "result": "WARN", "severity": 3}], "key": ["", null, null], "result": {"SKIP": 3, "WARN": 2}}], "fontbakery_version": "0.10.4"} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikscribble/GoogleFonts.json b/docs/fontbakery-reports/rubikscribble/GoogleFonts.json new file mode 100644 index 0000000..848cf1a --- /dev/null +++ b/docs/fontbakery-reports/rubikscribble/GoogleFonts.json @@ -0,0 +1,7 @@ +{ + "color": "green", + "label": "Google Fonts", + "logoSvg": "", + "message": "87%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikscribble/ShapingChecks.json b/docs/fontbakery-reports/rubikscribble/ShapingChecks.json new file mode 100644 index 0000000..1e5a389 --- /dev/null +++ b/docs/fontbakery-reports/rubikscribble/ShapingChecks.json @@ -0,0 +1,7 @@ +{ + "color": "red", + "label": "Shaping Checks", + "logoSvg": "", + "message": "0%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikscribble/Universal.json b/docs/fontbakery-reports/rubikscribble/Universal.json new file mode 100644 index 0000000..d84470f --- /dev/null +++ b/docs/fontbakery-reports/rubikscribble/Universal.json @@ -0,0 +1,7 @@ +{ + "color": "green", + "label": "Universal", + "logoSvg": "", + "message": "87%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/fontbakery-reports/rubikscribble/overall.json b/docs/fontbakery-reports/rubikscribble/overall.json new file mode 100644 index 0000000..56bde09 --- /dev/null +++ b/docs/fontbakery-reports/rubikscribble/overall.json @@ -0,0 +1,7 @@ +{ + "color": "green", + "label": "FontBakery QA", + "logoSvg": "", + "message": "89%", + "schemaVersion": 1 +} \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 7b6113a..d914d5e 100644 --- a/docs/index.html +++ b/docs/index.html @@ -70,7 +70,7 @@ .title a { font-size: 0.8em; } -
Filter results by

ABeeZee link

Designer Anja Meiners
Subsets latin, latin-ext, menu
Languages 23% (240/1037) of languages using the Latin script
First seen 2012-09-30
Last updated 2022-05-23 (1 year, 5 months ago)
Latest releases
Recent Pull Requests
Recent Commits
Failing tests
  • FAIL: Check Google Fonts glyph coverage.
  • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • FAIL: Check family name for GF Guide compliance.
  • FAIL: Check font follows the Google Fonts vertical metric schema
  • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • ADLaM Display link

    Designer Mark Jamra, Neil Patel, Andrew Footit
    Subsets adlam, latin, latin-ext, menu
    Languages 26% (279/1037) of languages using the Latin script
    First seen 2023-07-10
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check for METADATA subsets with zero support.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • AR One Sans link

    Designer Niteesh Yadav
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (312/1037) of languages using the Latin script
    First seen 2023-09-06
    Last updated 2023-10-20 (a month ago)
    Latest releases
    • (2 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Validate METADATA.pb axes tags are defined in gf_axisregistry.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Abel link

    Designer MADType
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-08-03
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Abhaya Libre link

    Designer Mooniak
    Subsets latin, latin-ext, menu, sinhala
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2016-08-30
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: Check font names are correct
    • FAIL: Font has all mandatory 'name' table entries?
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Verify that family names in the name table are consistent across all fonts in the family. Checks Typographic Family name (nameID 16) if present, otherwise uses Font Family name (nameID 1)
  • Full Fontbakery report
  • Aboreto link

    Designer Dominik Jáger
    Subsets latin, latin-ext, menu
    Languages 29% (302/1037) of languages using the Latin script
    First seen 2022-05-27
    Last updated 2022-07-01 (1 year, 4 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Abril Fatface link

    Designer TypeTogether
    Subsets menu, latin, latin-ext
    Languages 11% (116/1037) of languages using the Latin script
    First seen 2011-08-31
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Does the font have any invalid script tags?
  • Full Fontbakery report
  • Abyssinica SIL link

    Designer SIL International
    Subsets ethiopic, latin, latin-ext, menu
    Languages
    • 16% (173/1037) of languages using the Latin script
    • 14% (1/7) of languages using the Ethiopic script (Missing Blin; Oromo, Ethiopic; Wolaytta; Tigrinya; Geez; Tigre)
    First seen 2016-01-20
    Last updated 2022-11-25 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Acme link

    Designer Juan Pablo del Peral, Huerta Tipográfica
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Actor link

    Designer Thomas Junold
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-08-03
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: License URL matches License text on name table?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Adamina link

    Designer Cyreal
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-09-07
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Adobe Blank link

    Designer Dr. Ken Lunde
    Subsets menu
    Languages
    • 66% (685/1037) of languages using the Latin script
    • 84% (66/78) of languages using the Cyrillic script
    • 20% (1/5) of languages using the Syriac script (Missing Classical Syriac; Turoyo, Syriac; Arabic, Syriac; Syriac)
    • 28% (2/7) of languages using the Ethiopic script (Missing Blin; Oromo, Ethiopic; Wolaytta; Geez; Tigre)
    • 14% (12/81) of languages using the Arabic script
    • 29% (5/17) of languages using the Bangla script (Supports Manipuri; Rangpuri; Bishnupriya; Assamese; Bengali)
    • 50% (1/2) of languages using the Balinese script (Missing Sanskrit, Balinese)
    • 100% (1/1) of languages using the Batak script
    • 50% (3/6) of languages using the Tibetan script (Missing Balti, Tibetan; Western Tamang, Tibetan; Tshangla)
    • 100% (1/1) of languages using the Cherokee script
    • 100% (1/1) of languages using the Thaana script
    • 33% (2/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Coptic, Greek; Pontic, Greek; Tsakonian)
    • 100% (1/1) of languages using the Gujarati script
    • 57% (4/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic)
    • 100% (1/1) of languages using the Hanunoo script
    • 50% (1/2) of languages using the Armenian script (Missing Western Armenian, Armenian)
    • 100% (1/1) of languages using the Yi script
    • 100% (1/1) of languages using the Javanese script
    • 33% (1/3) of languages using the Georgian script (Missing Mingrelian; Laz)
    • 100% (1/1) of languages using the Khmer script
    • 50% (1/2) of languages using the Kannada script (Missing Tulu)
    • 100% (1/1) of languages using the Korean script
    • 33% (1/3) of languages using the Lao script (Missing Mong Njua; Khmu)
    • 100% (1/1) of languages using the Malayalam script
    • 16% (1/6) of languages using the Myanmar script (Missing Pwo Western Karen, Myanmar; Mon; Shan; S'gaw Karen, Myanmar; Khamti)
    • 100% (1/1) of languages using the Tangsa script
    • 16% (1/6) of languages using the Odia script (Missing Mundari, Odia; Kudmali, Odia; Sanskrit, Odia / Oriya; Kharia, Odia; Santali, Odia)
    • 100% (1/1) of languages using the Gurmukhi script
    • 100% (1/1) of languages using the Ol Chiki script
    • 25% (2/8) of languages using the Tifinagh script (Missing Central Atlas Tamazight, Tifinagh; Zenaga; Berber, Tifinagh; Kabyle, Tifinagh; Tamasheq, Tifinagh; Riffian)
    • 33% (1/3) of languages using the Sinhala script (Missing Sanskrit, Sinhala; Pali, Sinhala)
    • 50% (1/2) of languages using the Sundanese script (Missing Sanskrit, Sundanese)
    • 50% (1/2) of languages using the Tamil script (Missing Badaga)
    • 25% (1/4) of languages using the Telugu script (Missing Lambadi; Waddar; Gondi, Telugu)
    • 12% (1/8) of languages using the Thai script (Missing Northern Khmer; Pali, Thai; Western Lawa; Eastern Lawa; Kuy; Southern Thai; Northeastern Thai)
    • 100% (1/1) of languages using the Toto script
    • 100% (1/1) of languages using the Vai script
    • 20% (2/10) of languages using the Simplified Han script (Missing Wu Chinese; Zhuang, Simplified Han; Chinese, Jinyu; Min Nan Chinese; Literary Chinese; Xiang Chinese; Gan Chinese; Hakka Chinese)
    First seen 2016-03-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits

    Advent Pro link

    Designer Andreas Kalpakidis
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu
    Languages
    • 24% (259/1037) of languages using the Latin script
    • 69% (54/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2012-02-29
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check font names are correct
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Check name ID 25 to end with "Italic" for Italic VFs.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Afacad link

    Designer Kristian Möller, Dicotype
    Subsets cyrillic-ext, latin, latin-ext, math, menu, symbols, vietnamese
    Languages 29% (306/1037) of languages using the Latin script
    First seen 2023-10-20
    Last updated 2023-10-20 (a month ago)
    • Version Version 1.000 moved to sandbox on 2023-11-10 (12 days ago)
    • Version Version 1.000 moved to dev on 2023-10-26 (26 days ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Shapes languages in all GF glyphsets.
  • Full Fontbakery report
  • Agbalumo link

    Designer Raphael Alegbeleye, Sorkin Type, Eben Sorkin
    Subsets cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages 62% (647/1037) of languages using the Latin script
    First seen 2023-10-06
    Last updated 2023-10-06 (a month ago)
    • Version Version 1.000; ttfautohint (v1.8.4) moved to production on 2023-10-26 (26 days ago)
    • Version Version 1.000; ttfautohint (v1.8.4) moved to sandbox on 2023-10-14 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Agdasima link

    Designer The DocRepair Project, Patric King
    Subsets latin, latin-ext, menu
    Languages 24% (251/1037) of languages using the Latin script
    First seen 2023-04-03
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Fonts have consistent underline thickness?
  • Full Fontbakery report
  • Aguafina Script link

    Designer Sudtipos
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-30
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Akatab link

    Designer SIL International
    Subsets latin, latin-ext, menu, tifinagh
    Languages 21% (220/1037) of languages using the Latin script
    First seen 2023-02-15
    Last updated 2023-06-27 (4 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Akaya Kanadaka link

    Designer Vaishnavi Murthy, Juan Luis Blanco
    Subsets kannada, latin, latin-ext, menu
    Languages 26% (279/1037) of languages using the Latin script
    First seen 2021-01-14
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Akaya Telivigala link

    Designer Vaishnavi Murthy, Juan Luis Blanco
    Subsets latin, latin-ext, menu, telugu
    Languages 25% (267/1037) of languages using the Latin script
    First seen 2021-01-14
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Akronim link

    Designer Grzegorz Klimczewski
    Subsets menu, latin, latin-ext
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2012-09-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains unique glyph names?
  • Full Fontbakery report
  • Akshar link

    Designer Tall Chai
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 19% (207/1037) of languages using the Latin script
    • 6% (5/78) of languages using the Devanagari script (Supports Maithili; Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2022-03-22
    Last updated 2022-06-01 (1 year, 5 months ago)
    Latest releases
    • v1.1.0 (1 year, 7 months ago)
    • v1.0.0 (1 year, 7 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
  • Full Fontbakery report
  • Aladin link

    Designer Sudtipos
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-30
    Last updated 2023-08-09 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Alata link

    Designer Spyros Zevelakis, Eben Sorkin
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (340/1037) of languages using the Latin script
    First seen 2019-11-08
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
  • Full Fontbakery report
  • Alatsi link

    Designer Spyros Zevelakis, Eben Sorkin
    Subsets cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages 56% (588/1037) of languages using the Latin script
    First seen 2019-11-07
    Last updated 2022-11-04 (1 year, 17 days ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Albert Sans link

    Designer Andreas Rasmussen
    Subsets latin, latin-ext, menu
    Languages 11% (116/1037) of languages using the Latin script
    First seen 2022-06-09
    Last updated 2022-06-16 (1 year, 5 months ago)
    Latest releases
    • v1.25 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Aldrich link

    Designer MADType
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-08-17
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Alef link

    Designer Hagilda, Mushon Zer-Aviv
    Subsets hebrew, latin, menu
    Languages
    • 10% (113/1037) of languages using the Latin script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2013-05-21
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Checking correctness of monospaced metadata.
    • FAIL: MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?
    • FAIL: Does the font have any invalid feature tags?
    • FAIL: Does the font have any invalid language tags?
  • Full Fontbakery report
  • Alegreya link

    Designer Juan Pablo del Peral, Huerta Tipográfica
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 32% (338/1037) of languages using the Latin script
    • 70% (55/78) of languages using the Cyrillic script
    • 33% (2/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Coptic, Greek; Pontic, Greek; Tsakonian)
    First seen 2011-12-19
    Last updated 2022-11-16 (1 year, 5 days ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Alegreya SC link

    Designer Juan Pablo del Peral, Huerta Tipográfica
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 33% (349/1037) of languages using the Latin script
    • 70% (55/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2011-12-19
    Last updated 2022-11-16 (1 year, 5 days ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Fonts have consistent underline thickness?
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
    • FAIL: Check glyphs do not have duplicate components which have the same x,y coordinates.
  • Full Fontbakery report
  • Alegreya Sans link

    Designer Juan Pablo del Peral, Huerta Tipográfica
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 32% (332/1037) of languages using the Latin script
    • 70% (55/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2013-12-04
    Last updated 2022-11-16 (1 year, 5 days ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Alegreya Sans SC link

    Designer Juan Pablo del Peral, Huerta Tipográfica
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 32% (342/1037) of languages using the Latin script
    • 70% (55/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2013-12-04
    Last updated 2022-11-16 (1 year, 5 days ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Fonts have consistent underline thickness?
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Aleo link

    Designer Alessio Laiso
    Subsets latin, latin-ext, menu, vietnamese
    Languages 56% (583/1037) of languages using the Latin script
    First seen 2018-12-05
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Alex Brush link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (314/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2022-12-09 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Alexandria link

    Designer Mohamed Gaber, Julieta Ulanovsky
    Subsets arabic, latin, latin-ext, menu, vietnamese
    Languages
    • 30% (317/1037) of languages using the Latin script
    • 1% (1/81) of languages using the Arabic script (Supports Urdu)
    First seen 2022-11-04
    Last updated 2022-11-04 (1 year, 17 days ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check font names are correct
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Alfa Slab One link

    Designer JM Solé
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (339/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • Full Fontbakery report
  • Alice link

    Designer Ksenya Erulevich, Cyreal
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu
    Languages
    • 21% (221/1037) of languages using the Latin script
    • 3% (3/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic); Serbian; Macedonian)
    First seen 2011-08-10
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Alike link

    Designer Sveta Sebyakina, Cyreal
    Subsets latin, latin-ext, math, menu, symbols
    Languages 26% (274/1037) of languages using the Latin script
    First seen 2011-08-24
    Last updated 2023-11-02 (19 days ago)
    • Version Version 1.301; ttfautohint (v1.8.4.7-5d5b) moved to dev on 2023-11-16 (6 days ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Alike Angular link

    Designer Sveta Sebyakina, Cyreal
    Subsets latin, latin-ext, math, menu, symbols
    Languages 26% (272/1037) of languages using the Latin script
    First seen 2011-09-28
    Last updated 2023-11-10 (11 days ago)
    • Version Version 1.300; ttfautohint (v1.8.4.7-5d5b) moved to dev on 2023-11-16 (6 days ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Alkalami link

    Designer SIL International
    Subsets arabic, latin, latin-ext, menu
    Languages
    • 10% (107/1037) of languages using the Latin script
    • 1% (1/81) of languages using the Arabic script (Supports Arabic)
    First seen 2022-06-10
    Last updated 2023-03-02 (8 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Alkatra link

    Designer Suman Bhandary
    Subsets bengali, devanagari, latin, latin-ext, menu, oriya
    Languages
    • 27% (283/1037) of languages using the Latin script
    • 23% (4/17) of languages using the Bangla script (Supports Assamese; Bengali; Bishnupriya; Rangpuri)
    • 3% (3/78) of languages using the Devanagari script (Supports Eastern Tamang; Dotyali; Goan Konkani)
    First seen 2023-01-27
    Last updated 2023-02-08 (9 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check font names are correct
  • Full Fontbakery report
  • Allan link

    Designer Anton Koovit
    Subsets latin, latin-ext, menu
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-09-06
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Fonts have consistent underline thickness?
    • FAIL: Checking correctness of monospaced metadata.
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
    • FAIL: MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?
    • FAIL: Is there a usable "kern" table declared in the font?
    • FAIL: Does the font have any invalid script tags?
  • Full Fontbakery report
  • Allerta link

    Designer Matt McInerney
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2010-11-30
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Allerta Stencil link

    Designer Matt McInerney
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2010-11-30
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Allison link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (317/1037) of languages using the Latin script
    First seen 2021-07-02
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Allura link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (314/1037) of languages using the Latin script
    First seen 2012-02-08
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Almarai link

    Designer Boutros Fonts
    Subsets arabic, latin, menu
    Languages
    • 10% (107/1037) of languages using the Latin script
    • 1% (1/81) of languages using the Arabic script (Supports Urdu)
    First seen 2019-06-04
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Font contains unique glyph names?
    • FAIL: Does full font name begin with the font family name?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Almendra link

    Designer Ana Sanfelippo
    Subsets latin, latin-ext, menu
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Almendra Display link

    Designer Ana Sanfelippo
    Subsets latin, latin-ext, menu
    Languages 10% (106/1037) of languages using the Latin script
    First seen 2012-11-12
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Almendra SC link

    Designer Ana Sanfelippo
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Alumni Sans link

    Designer Robert Leuschke
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 29% (302/1037) of languages using the Latin script
    • 19% (15/78) of languages using the Cyrillic script
    First seen 2021-06-19
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Alumni Sans Collegiate One link

    Designer Robert Leuschke
    Subsets cyrillic, latin, latin-ext, menu, vietnamese
    Languages
    • 26% (279/1037) of languages using the Latin script
    • 19% (15/78) of languages using the Cyrillic script
    First seen 2022-04-09
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Alumni Sans Inline One link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2022-02-24
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Alumni Sans Pinstripe link

    Designer Robert Leuschke
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 30% (320/1037) of languages using the Latin script
    • 19% (15/78) of languages using the Cyrillic script
    First seen 2022-06-09
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Amarante link

    Designer Karolina Lach
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-07-10
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Amaranth link

    Designer Gesine Todt
    Subsets latin, menu
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2011-05-04
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
  • Full Fontbakery report
  • Amatic SC link

    Designer Vernon Adams, Ben Nathan, Thomas Jockin
    Subsets cyrillic, hebrew, latin, latin-ext, menu, vietnamese
    Languages
    • 31% (329/1037) of languages using the Latin script
    • 26% (21/78) of languages using the Cyrillic script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2011-10-12
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Amethysta link

    Designer Cyreal
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Amiko link

    Designer Impallari Type
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 29% (307/1037) of languages using the Latin script
    • 10% (8/78) of languages using the Devanagari script (Supports Maithili; Bhojpuri; Eastern Tamang; Dotyali; Magahi; Goan Konkani; Kangri; Awadhi)
    First seen 2016-06-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Amiri link

    Designer Khaled Hosny, Sebastian Kosch
    Subsets arabic, latin, latin-ext, menu
    Languages
    • 26% (271/1037) of languages using the Latin script
    • 6% (5/81) of languages using the Arabic script (Supports Sindhi; Central Kurdish; Urdu; Kashmiri; Uyghur)
    First seen 2012-07-30
    Last updated 2022-12-07 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
  • Full Fontbakery report
  • Amiri Quran link

    Designer Khaled Hosny, Sebastian Kosch
    Subsets arabic, latin, menu
    Languages 10% (105/1037) of languages using the Latin script
    First seen 2022-08-10
    Last updated 2023-09-06 (2 months ago)
    • Version 0.117-H1 moved to production on 2023-10-26 (26 days ago)
    • Version 0.117-H1 moved to sandbox on 2023-10-11 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Check font has the expected color font tables.
  • Full Fontbakery report
  • Amita link

    Designer Eduardo Tunni, Brian Bonislawsky
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (113/1037) of languages using the Latin script
    • 5% (4/78) of languages using the Devanagari script (Supports Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2015-05-20
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Anaheim link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (337/1037) of languages using the Latin script
    First seen 2012-10-31
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Andada Pro link

    Designer Huerta Tipográfica, Carolina Giovagnoli
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (330/1037) of languages using the Latin script
    First seen 2021-05-19
    Last updated 2022-11-16 (1 year, 5 days ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Andika link

    Designer SIL International
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 49% (510/1037) of languages using the Latin script
    • 80% (63/78) of languages using the Cyrillic script
    First seen 2011-08-10
    Last updated 2023-05-23 (5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Anek Bangla link

    Designer Ek Type
    Subsets bengali, latin, latin-ext, menu
    Languages
    • 20% (216/1037) of languages using the Latin script
    • 23% (4/17) of languages using the Bangla script (Supports Assamese; Bengali; Bishnupriya; Rangpuri)
    First seen 2022-02-09
    Last updated 2022-12-14 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Anek Devanagari link

    Designer Ek Type
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 20% (216/1037) of languages using the Latin script
    • 5% (4/78) of languages using the Devanagari script (Supports Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2022-02-09
    Last updated 2022-12-14 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Anek Gujarati link

    Designer Ek Type
    Subsets gujarati, latin, latin-ext, menu
    Languages
    • 20% (216/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Gujarati script
    First seen 2022-02-09
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Anek Gurmukhi link

    Designer Ek Type
    Subsets gurmukhi, latin, latin-ext, menu
    Languages 20% (216/1037) of languages using the Latin script
    First seen 2022-02-16
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Anek Kannada link

    Designer Ek Type
    Subsets kannada, latin, latin-ext, menu
    Languages 20% (216/1037) of languages using the Latin script
    First seen 2022-02-16
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Anek Latin link

    Designer Ek Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (336/1037) of languages using the Latin script
    First seen 2022-02-16
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Anek Malayalam link

    Designer Ek Type
    Subsets latin, latin-ext, malayalam, menu
    Languages
    • 20% (216/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Malayalam script
    First seen 2022-02-16
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
  • Full Fontbakery report
  • Anek Odia link

    Designer Ek Type
    Subsets latin, latin-ext, menu, oriya
    Languages 20% (216/1037) of languages using the Latin script
    First seen 2022-02-09
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Anek Tamil link

    Designer Ek Type
    Subsets latin, latin-ext, menu, tamil
    Languages
    • 20% (216/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Tamil script (Missing Badaga)
    First seen 2022-02-09
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Anek Telugu link

    Designer Ek Type
    Subsets latin, latin-ext, menu, telugu
    Languages 20% (216/1037) of languages using the Latin script
    First seen 2022-02-16
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Angkor link

    Designer Danh Hong
    Subsets khmer, latin, menu
    Languages
    • 10% (104/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Khmer script
    First seen 2011-03-02
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Annie Use Your Telescope link

    Designer Kimberly Geswein
    Subsets latin, menu
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2011-04-14
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Anonymous Pro link

    Designer Mark Simonson
    Subsets cyrillic, greek, latin, latin-ext, menu
    Languages
    • 10% (113/1037) of languages using the Latin script
    • 1% (1/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic))
    First seen 2010-12-15
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Are there unwanted Apple tables?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
  • Full Fontbakery report
  • Antic link

    Designer Santiago Orozco
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-08-31
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Antic Didone link

    Designer Santiago Orozco
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-03-14
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Antic Slab link

    Designer Santiago Orozco
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-03-14
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Anton link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu, vietnamese
    Languages 33% (345/1037) of languages using the Latin script
    First seen 2011-02-23
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Antonio link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu
    Languages 25% (260/1037) of languages using the Latin script
    First seen 2013-03-06
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check variable font instances
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Anuphan link

    Designer Cadson Demak
    Subsets cyrillic-ext, latin, latin-ext, menu, thai, vietnamese
    Languages 30% (319/1037) of languages using the Latin script
    First seen 2023-02-23
    Last updated 2023-04-06 (7 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check font names are correct
  • Full Fontbakery report
  • Anybody link

    Designer Tyler Finck
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (309/1037) of languages using the Latin script
    First seen 2022-03-02
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Check font names are correct
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Aoboshi One link

    Designer Natsumi Matsuba
    Subsets japanese, latin, latin-ext, menu
    Languages
    • Defined language in metadata: ja_Kana
    • Defined language in metadata: ja_Hira
    • 20% (212/1037) of languages using the Latin script
    First seen 2020-12-16
    Last updated 2023-04-27 (6 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Arapey link

    Designer Eduardo Tunni
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-02
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Arbutus link

    Designer Karolina Lach
    Subsets latin, latin-ext, menu
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-12-07
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Arbutus Slab link

    Designer Karolina Lach
    Subsets latin, latin-ext, menu
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-09-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Architects Daughter link

    Designer Kimberly Geswein
    Subsets latin, menu
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2011-03-09
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Archivo link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (339/1037) of languages using the Latin script
    First seen 2016-12-03
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Archivo Black link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-09-18
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Archivo Narrow link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (324/1037) of languages using the Latin script
    First seen 2012-09-18
    Last updated 2022-11-18 (1 year, 3 days ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Are You Serious link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2021-08-27
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Aref Ruqaa link

    Designer Abdullah Aref, Khaled Hosny, Hermann Zapf
    Subsets arabic, latin, latin-ext, menu
    Languages
    • 18% (194/1037) of languages using the Latin script
    • 2% (2/81) of languages using the Arabic script (Supports Central Kurdish; Urdu)
    First seen 2016-06-20
    Last updated 2022-11-23 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Aref Ruqaa Ink link

    Designer Abdullah Aref, Khaled Hosny, Hermann Zapf
    Subsets arabic, latin, latin-ext, menu
    Languages
    • 18% (194/1037) of languages using the Latin script
    • 2% (2/81) of languages using the Arabic script (Supports Central Kurdish; Urdu)
    First seen 2022-02-26
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Arima link

    Designer Natanael Gama, Joana Correia, Rosalie Wagner
    Subsets greek, greek-ext, latin, latin-ext, malayalam, menu, tamil, vietnamese
    Languages
    • 30% (314/1037) of languages using the Latin script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    • 100% (1/1) of languages using the Malayalam script
    • 50% (1/2) of languages using the Tamil script (Missing Badaga)
    First seen 2022-05-25
    Last updated 2023-02-21 (8 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Check font names are correct
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Arizonia link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (313/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Armata link

    Designer Viktoriya Grabowska
    Subsets latin, latin-ext, menu
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Arsenal link

    Designer Andrij Shevchenko
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 24% (249/1037) of languages using the Latin script
    • 82% (64/78) of languages using the Cyrillic script
    First seen 2016-12-06
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
  • Full Fontbakery report
  • Artifika link

    Designer Cyreal
    Subsets latin, menu
    Languages 18% (191/1037) of languages using the Latin script
    First seen 2011-06-01
    Last updated 2022-12-07 (11 months ago)
    Latest releases
    • v1.102 (1 year, 9 months ago)
    • v1.100 (1 year, 10 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Arvo link

    Designer Anton Koovit
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2010-11-17
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb: Copyright notice is the same in all fonts?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Fonts have consistent underline thickness?
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
  • Full Fontbakery report
  • Arya link

    Designer Eduardo Tunni
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (113/1037) of languages using the Latin script
    • 5% (4/78) of languages using the Devanagari script (Supports Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2015-05-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Asap link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (327/1037) of languages using the Latin script
    First seen 2012-01-25
    Last updated 2023-05-23 (5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Asap Condensed link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (327/1037) of languages using the Latin script
    First seen 2016-12-07
    Last updated 2022-11-04 (1 year, 17 days ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Check font names are correct
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Does full font name begin with the font family name?
  • Full Fontbakery report
  • Asar link

    Designer Sorkin Type
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 11% (116/1037) of languages using the Latin script
    • 6% (5/78) of languages using the Devanagari script (Supports Maithili; Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2015-06-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Asset link

    Designer Riccardo De Franceschi
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-06-29
    Last updated 2023-08-09 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Assistant link

    Designer Adobe Systems Inc., Ben Nathan
    Subsets hebrew, latin, latin-ext, menu
    Languages
    • 22% (237/1037) of languages using the Latin script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2016-06-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Astloch link

    Designer Dan Rhatigan
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-02-16
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb: Copyright notice is the same in all fonts?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Asul link

    Designer Mariela Monsalve
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Athiti link

    Designer Cadson Demak
    Subsets latin, latin-ext, menu, thai, vietnamese
    Languages 29% (310/1037) of languages using the Latin script
    First seen 2016-06-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Atkinson Hyperlegible link

    Designer Braille Institute, Applied Design Works, Elliott Scott, Megan Eiswerth, Linus Boman, Theodore Petrosky
    Subsets latin, latin-ext, menu
    Languages 24% (250/1037) of languages using the Latin script
    First seen 2021-04-30
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Atma link

    Designer Black Foundry
    Subsets bengali, latin, latin-ext, menu
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 23% (4/17) of languages using the Bangla script (Supports Assamese; Bengali; Bishnupriya; Rangpuri)
    First seen 2017-05-09
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check font has a license.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Ensure indic fonts have the Indian Rupee Sign glyph.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Atomic Age link

    Designer James Grieshaber
    Subsets latin, menu
    Languages 27% (285/1037) of languages using the Latin script
    First seen 2011-10-26
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Aubrey link

    Designer Cyreal
    Subsets latin, menu
    Languages 18% (189/1037) of languages using the Latin script
    First seen 2011-07-27
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    • v1.102 (1 year, 9 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Audiowide link

    Designer Astigmatic
    Subsets latin, latin-ext, menu
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-04-04
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Autour One link

    Designer Sorkin Type
    Subsets latin, latin-ext, menu
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-05-15
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Average link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu
    Languages 26% (273/1037) of languages using the Latin script
    First seen 2012-03-14
    Last updated 2022-10-07 (1 year, 1 month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Average Sans link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-10-26
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Averia Gruesa Libre link

    Designer Dan Sayers
    Subsets latin, latin-ext, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-03-14
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Font styles are named canonically?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
  • Full Fontbakery report
  • Averia Libre link

    Designer Dan Sayers
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-03-14
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb: Copyright notice is the same in all fonts?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Averia Sans Libre link

    Designer Dan Sayers
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-03-14
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Averia Serif Libre link

    Designer Dan Sayers
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-03-14
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Are there unwanted tables?
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Azeret Mono link

    Designer Displaay, Martin Vácha
    Subsets latin, latin-ext, menu
    Languages 26% (271/1037) of languages using the Latin script
    First seen 2021-06-08
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Checking correctness of monospaced metadata.
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • B612 link

    Designer Nicolas Chauveau, Thomas Paillot, Jonathan Favre-Lamarine, Jean-Luc Vinot
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2018-11-21
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • B612 Mono link

    Designer Nicolas Chauveau, Thomas Paillot, Jonathan Favre-Lamarine, Jean-Luc Vinot
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2018-11-21
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • BIZ UDGothic link

    Designer Type Bank Co., Morisawa Inc.
    Subsets cyrillic, greek-ext, japanese, latin, latin-ext, menu
    Languages
    • 21% (220/1037) of languages using the Latin script
    • 25% (20/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2022-03-16
    Last updated 2022-12-13 (11 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Checking correctness of monospaced metadata.
  • Full Fontbakery report
  • BIZ UDMincho link

    Designer Type Bank Co., Morisawa Inc.
    Subsets cyrillic, greek-ext, japanese, latin, latin-ext, menu
    Languages
    • 21% (220/1037) of languages using the Latin script
    • 25% (20/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2022-03-16
    Last updated 2022-12-15 (11 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Checking correctness of monospaced metadata.
  • Full Fontbakery report
  • BIZ UDPGothic link

    Designer Type Bank Co., Morisawa Inc.
    Subsets cyrillic, greek-ext, japanese, latin, latin-ext, menu
    Languages
    • 21% (220/1037) of languages using the Latin script
    • 25% (20/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2022-03-16
    Last updated 2023-09-06 (2 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check family name for GF Guide compliance.
  • Full Fontbakery report
  • BIZ UDPMincho link

    Designer Type Bank Co., Morisawa Inc.
    Subsets cyrillic, greek-ext, japanese, latin, latin-ext, menu
    Languages
    • 21% (220/1037) of languages using the Latin script
    • 25% (20/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2022-03-16
    Last updated 2022-12-15 (11 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
  • Full Fontbakery report
  • Babylonica link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (320/1037) of languages using the Latin script
    First seen 2022-02-23
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Bacasime Antique link

    Designer The DocRepair Project, Claus Eggers Sørensen
    Subsets latin, latin-ext, menu
    Languages 23% (244/1037) of languages using the Latin script
    First seen 2023-06-14
    Last updated 2023-06-14 (5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
  • Full Fontbakery report
  • Bad Script link

    Designer Gaslight
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 32% (337/1037) of languages using the Latin script
    • 70% (55/78) of languages using the Cyrillic script
    First seen 2011-12-13
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Font styles are named canonically?
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
  • Full Fontbakery report
  • Bagel Fat One link

    Designer Kyungwon Kim, JAMO
    Subsets korean, latin, latin-ext, menu
    Languages
    • 17% (180/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Korean script
    First seen 2023-05-18
    Last updated 2023-05-25 (5 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Bahiana link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu
    Languages 28% (294/1037) of languages using the Latin script
    First seen 2016-12-02
    Last updated 2023-08-09 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
  • Full Fontbakery report
  • Bahianita link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (312/1037) of languages using the Latin script
    First seen 2019-06-12
    Last updated 2023-08-15 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check glyphs do not have components which are themselves components.
  • Full Fontbakery report
  • Bai Jamjuree link

    Designer Cadson Demak
    Subsets latin, latin-ext, menu, thai, vietnamese
    Languages 32% (341/1037) of languages using the Latin script
    First seen 2018-08-24
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Bakbak One link

    Designer Saumya Kishore, Sanchit Sawaria
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 11% (116/1037) of languages using the Latin script
    • 5% (4/78) of languages using the Devanagari script (Supports Eastern Tamang; Kangri; Dotyali; Goan Konkani)
    First seen 2021-09-10
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Ballet link

    Designer Omnibus-Type, Maximiliano Sproviero
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (324/1037) of languages using the Latin script
    First seen 2020-09-24
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Baloo 2 link

    Designer Ek Type
    Subsets devanagari, latin, latin-ext, menu, vietnamese
    Languages
    • 29% (311/1037) of languages using the Latin script
    • 10% (8/78) of languages using the Devanagari script (Supports Maithili; Bhojpuri; Eastern Tamang; Dotyali; Magahi; Goan Konkani; Kangri; Awadhi)
    First seen 2016-01-20
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Baloo Bhai 2 link

    Designer Ek Type
    Subsets gujarati, latin, latin-ext, menu, vietnamese
    Languages
    • 29% (311/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Gujarati script
    First seen 2016-01-20
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Baloo Bhaijaan 2 link

    Designer Ek Type
    Subsets arabic, latin, latin-ext, menu, vietnamese
    Languages
    • 31% (329/1037) of languages using the Latin script
    • 1% (1/81) of languages using the Arabic script (Supports Urdu)
    First seen 2021-10-29
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Baloo Bhaina 2 link

    Designer Ek Type
    Subsets latin, latin-ext, menu, oriya, vietnamese
    Languages 29% (311/1037) of languages using the Latin script
    First seen 2016-01-20
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Baloo Chettan 2 link

    Designer Ek Type
    Subsets latin, latin-ext, malayalam, menu, vietnamese
    Languages
    • 29% (311/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Malayalam script
    First seen 2016-01-20
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Baloo Da 2 link

    Designer Ek Type
    Subsets bengali, latin, latin-ext, menu, vietnamese
    Languages
    • 29% (311/1037) of languages using the Latin script
    • 23% (4/17) of languages using the Bangla script (Supports Assamese; Bengali; Bishnupriya; Rangpuri)
    First seen 2016-01-20
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Baloo Paaji 2 link

    Designer Ek Type
    Subsets gurmukhi, latin, latin-ext, menu, vietnamese
    Languages 29% (311/1037) of languages using the Latin script
    First seen 2016-01-20
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Baloo Tamma 2 link

    Designer Ek Type
    Subsets kannada, latin, latin-ext, menu, vietnamese
    Languages 29% (311/1037) of languages using the Latin script
    First seen 2016-01-20
    Last updated 2022-10-20 (1 year, 1 month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Baloo Tammudu 2 link

    Designer Ek Type
    Subsets latin, latin-ext, menu, telugu, vietnamese
    Languages 29% (311/1037) of languages using the Latin script
    First seen 2016-01-20
    Last updated 2022-10-20 (1 year, 1 month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Baloo Thambi 2 link

    Designer Ek Type
    Subsets latin, latin-ext, menu, tamil, vietnamese
    Languages
    • 29% (311/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Tamil script (Missing Badaga)
    First seen 2016-01-20
    Last updated 2022-10-20 (1 year, 1 month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Balsamiq Sans link

    Designer Michael Angeles
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu
    Languages
    • 45% (473/1037) of languages using the Latin script
    • 70% (55/78) of languages using the Cyrillic script
    First seen 2020-04-09
    Last updated 2023-09-28 (a month ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Balthazar link

    Designer Dario Manuel Muhafara
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-13
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Bangers link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (324/1037) of languages using the Latin script
    First seen 2011-02-09
    Last updated 2023-06-22 (4 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Barlow link

    Designer Jeremy Tribby
    Subsets latin, latin-ext, menu, vietnamese
    Languages 27% (282/1037) of languages using the Latin script
    First seen 2017-10-26
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Barlow Condensed link

    Designer Jeremy Tribby
    Subsets latin, latin-ext, menu, vietnamese
    Languages 27% (282/1037) of languages using the Latin script
    First seen 2017-10-26
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Barlow Semi Condensed link

    Designer Jeremy Tribby
    Subsets latin, latin-ext, menu, vietnamese
    Languages 27% (282/1037) of languages using the Latin script
    First seen 2017-10-26
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Check font names are correct
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
    • FAIL: Does full font name begin with the font family name?
  • Full Fontbakery report
  • Barriecito link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (311/1037) of languages using the Latin script
    First seen 2019-06-12
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
  • Full Fontbakery report
  • Barrio link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu
    Languages 28% (294/1037) of languages using the Latin script
    First seen 2016-12-02
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
  • Full Fontbakery report
  • Basic link

    Designer Magnus Gaarde
    Subsets menu, latin, latin-ext
    Languages 11% (116/1037) of languages using the Latin script
    First seen 2011-12-15
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Baskervville link

    Designer ANRT
    Subsets latin, latin-ext, menu
    Languages 26% (273/1037) of languages using the Latin script
    First seen 2019-10-04
    Last updated 2023-06-30 (4 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
  • Full Fontbakery report
  • Battambang link

    Designer Danh Hong
    Subsets khmer, latin, menu
    Languages
    • 10% (104/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Khmer script
    First seen 2011-03-02
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Baumans link

    Designer Cyreal
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-07
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Bayon link

    Designer Danh Hong
    Subsets khmer, latin, menu
    Languages
    • 10% (104/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Khmer script
    First seen 2011-03-02
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Be Vietnam Pro link

    Designer Lâm Bảo, Tony Le, ViệtAnh Nguyễn
    Subsets latin, latin-ext, menu, vietnamese
    Languages 25% (269/1037) of languages using the Latin script
    First seen 2021-06-13
    Last updated 2023-05-25 (5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Beau Rivage link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (307/1037) of languages using the Latin script
    First seen 2022-02-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Bebas Neue link

    Designer Ryoichi Tsunekawa
    Subsets latin, latin-ext, menu
    Languages 27% (287/1037) of languages using the Latin script
    First seen 2019-10-16
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Belanosima link

    Designer The DocRepair Project, Santiago Orozco
    Subsets latin, latin-ext, menu
    Languages 21% (224/1037) of languages using the Latin script
    First seen 2023-06-14
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Fonts have consistent underline thickness?
  • Full Fontbakery report
  • Belgrano link

    Designer LatinoType
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Bellefair link

    Designer Nick Shinn, Liron Lavi Turkenic
    Subsets hebrew, latin, latin-ext, menu
    Languages
    • 10% (113/1037) of languages using the Latin script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2017-06-28
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Belleza link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu
    Languages 25% (260/1037) of languages using the Latin script
    First seen 2012-03-29
    Last updated 2022-06-16 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Bellota link

    Designer Kemie Guaida
    Subsets cyrillic, latin, latin-ext, menu, vietnamese
    Languages
    • 31% (331/1037) of languages using the Latin script
    • 16% (13/78) of languages using the Cyrillic script
    First seen 2020-01-16
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    • v4.1 (3 years ago)
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Bellota Text link

    Designer Kemie Guaida
    Subsets cyrillic, latin, latin-ext, menu, vietnamese
    Languages
    • 31% (330/1037) of languages using the Latin script
    • 16% (13/78) of languages using the Cyrillic script
    First seen 2020-01-16
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    • v4.1 (3 years ago)
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • BenchNine link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2012-09-24
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Benne link

    Designer John Harrington
    Subsets kannada, latin, latin-ext, menu
    Languages 3% (32/1037) of languages using the Latin script
    First seen 2020-12-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Bentham link

    Designer Ben Weiner
    Subsets latin, menu
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2010-11-30
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Space and non-breaking space have the same width?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Berkshire Swash link

    Designer Astigmatic
    Subsets latin, latin-ext, menu
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-03-14
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Besley link

    Designer Owen Earl
    Subsets latin, latin-ext, menu
    Languages 28% (291/1037) of languages using the Latin script
    First seen 2021-01-05
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font contains '.notdef' as its first glyph?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Beth Ellen link

    Designer Rob Jelinski, Alyson Fraser Diaz
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2019-05-10
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Bevan link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (324/1037) of languages using the Latin script
    First seen 2011-02-23
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Bhavuka link

    Designer Multiple Designers
    Subsets menu, devanagari, latin, latin-ext
    Languages
    • 25% (268/1037) of languages using the Latin script
    • 10% (8/78) of languages using the Devanagari script (Supports Maithili; Bhojpuri; Eastern Tamang; Dotyali; Magahi; Goan Konkani; Kangri; Awadhi)
    First seen 2014-10-31
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Font designer field in METADATA.pb must not contain 'Multiple designers'.
    • FAIL: Does METADATA.pb copyright field contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Whitespace glyphs have ink?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Does the font have any invalid feature tags?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • BhuTuka Expanded One link

    Designer Erin McLaughlin
    Subsets gurmukhi, latin, latin-ext, menu
    Languages 14% (146/1037) of languages using the Latin script
    First seen 2022-01-21
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Big Shoulders Display link

    Designer Patric King
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (324/1037) of languages using the Latin script
    First seen 2019-09-11
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Big Shoulders Inline Display link

    Designer Patric King
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (326/1037) of languages using the Latin script
    First seen 2020-10-13
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Big Shoulders Inline Text link

    Designer Patric King
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (326/1037) of languages using the Latin script
    First seen 2020-10-13
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Big Shoulders Stencil Display link

    Designer Patric King
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (326/1037) of languages using the Latin script
    First seen 2020-10-13
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Big Shoulders Stencil Text link

    Designer Patric King
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (326/1037) of languages using the Latin script
    First seen 2020-10-13
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Big Shoulders Text link

    Designer Patric King
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (324/1037) of languages using the Latin script
    First seen 2019-09-11
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Bigelow Rules link

    Designer Astigmatic
    Subsets latin, latin-ext, menu
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-11-02
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Bigshot One link

    Designer Gesine Todt
    Subsets latin, menu
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2011-05-04
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Bilbo link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 26% (274/1037) of languages using the Latin script
    First seen 2011-12-07
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Bilbo Swash Caps link

    Designer TypeSETit
    Subsets latin, latin-ext, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-13
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • BioRhyme link

    Designer Aoife Mooney
    Subsets latin, latin-ext, menu
    Languages 26% (279/1037) of languages using the Latin script
    First seen 2016-06-20
    Last updated 2023-09-20 (2 months ago)
    • Version Version 1.600;gftools[0.9.33] moved to production on 2023-10-26 (26 days ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • BioRhyme Expanded link

    Designer Aoife Mooney
    Subsets latin, latin-ext, menu
    Languages 27% (280/1037) of languages using the Latin script
    First seen 2016-06-20
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Birthstone link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (306/1037) of languages using the Latin script
    First seen 2021-08-06
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Birthstone Bounce link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (308/1037) of languages using the Latin script
    First seen 2021-09-02
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Biryani link

    Designer Dan Reynolds, Mathieu Réguer
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (113/1037) of languages using the Latin script
    • 5% (4/78) of languages using the Devanagari script (Supports Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2015-04-22
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Bitter link

    Designer Sol Matas
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 31% (329/1037) of languages using the Latin script
    • 82% (64/78) of languages using the Cyrillic script
    First seen 2011-12-19
    Last updated 2022-11-16 (1 year, 5 days ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check small caps glyphs are available.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Black And White Picture link

    Designer AsiaSoft Inc.
    Subsets korean, menu
    Languages
    • 10% (105/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Korean script
    First seen 2018-02-27
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Ensure files are not too large.
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: Check METADATA.pb includes production subsets.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Font contains unique glyph names?
    • FAIL: Does full font name begin with the font family name?
  • Full Fontbakery report
  • Black Han Sans link

    Designer Zess Type
    Subsets korean, menu
    Languages
    • 10% (105/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Korean script
    First seen 2018-02-23
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: Check METADATA.pb includes production subsets.
    • FAIL: Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: PostScript name follows OpenType specification requirements?
    • FAIL: Name table ID 6 (PostScript name) must be consistent across platforms.
  • Full Fontbakery report
  • Black Ops One link

    Designer James Grieshaber, Eben Sorkin
    Subsets cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages 39% (408/1037) of languages using the Latin script
    First seen 2011-07-27
    Last updated 2022-07-28 (1 year, 3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Blaka link

    Designer Mohamed Gaber
    Subsets arabic, latin, latin-ext, menu
    Languages
    • 26% (270/1037) of languages using the Latin script
    • 1% (1/81) of languages using the Arabic script (Supports Urdu)
    First seen 2022-04-26
    Last updated 2023-09-29 (a month ago)
    • Version Version 1.003; ttfautohint (v1.8.4.7-5d5b) moved to production on 2023-10-26 (26 days ago)
    • Version Version 1.003; ttfautohint (v1.8.4.7-5d5b) moved to sandbox on 2023-10-14 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Blaka Hollow link

    Designer Mohamed Gaber
    Subsets arabic, latin, latin-ext, menu
    Languages
    • 26% (270/1037) of languages using the Latin script
    • 1% (1/81) of languages using the Arabic script (Supports Urdu)
    First seen 2022-04-26
    Last updated 2023-09-29 (a month ago)
    • Version Version 1.003; ttfautohint (v1.8.4.7-5d5b) moved to production on 2023-10-26 (26 days ago)
    • Version Version 1.003; ttfautohint (v1.8.4.7-5d5b) moved to sandbox on 2023-10-14 (a month ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Blaka Ink link

    Designer Mohamed Gaber
    Subsets arabic, latin, latin-ext, menu
    Languages
    • 26% (270/1037) of languages using the Latin script
    • 1% (1/81) of languages using the Arabic script (Supports Urdu)
    First seen 2022-02-26
    Last updated 2023-09-29 (a month ago)
    • Version Version 1.003; ttfautohint (v1.8.4.7-5d5b) moved to production on 2023-10-26 (26 days ago)
    • Version Version 1.003; ttfautohint (v1.8.4.7-5d5b) moved to sandbox on 2023-10-14 (a month ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Blinker link

    Designer Juergen Huber
    Subsets latin, latin-ext, menu
    Languages 11% (116/1037) of languages using the Latin script
    First seen 2019-06-24
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check font has a license.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Fonts have consistent underline thickness?
  • Full Fontbakery report
  • Bodoni Moda link

    Designer Owen Earl
    Subsets latin, latin-ext, menu
    Languages 26% (275/1037) of languages using the Latin script
    First seen 2020-11-25
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Bokor link

    Designer Danh Hong
    Subsets khmer, latin, menu
    Languages
    • 10% (104/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Khmer script
    First seen 2011-03-02
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Bona Nova link

    Designer Capitalics, Mateusz Machalski, Andrzej Heidrich
    Subsets cyrillic, cyrillic-ext, greek, hebrew, latin, latin-ext, menu, vietnamese
    Languages
    • 32% (334/1037) of languages using the Latin script
    • 25% (20/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2021-04-13
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Bonbon link

    Designer Cyreal
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-07
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Bonheur Royale link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (321/1037) of languages using the Latin script
    First seen 2021-08-06
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Boogaloo link

    Designer John Vargas Beltrán
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Borel link

    Designer Rosalie Wagner
    Subsets latin, latin-ext, math, menu, symbols, vietnamese
    Languages 19% (200/1037) of languages using the Latin script
    First seen 2023-07-05
    Last updated 2023-10-10 (a month ago)
    • Version Version 1.005; ttfautohint (v1.8.4.7-5d5b) moved to production on 2023-11-10 (12 days ago)
    • Version Version 1.005; ttfautohint (v1.8.4.7-5d5b) moved to sandbox on 2023-10-21 (a month ago)
    • Version Version 1.005; ttfautohint (v1.8.4.7-5d5b) moved to dev on 2023-10-20 (a month ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Bowlby One link

    Designer Vernon Adams
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-07-13
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Bowlby One SC link

    Designer Vernon Adams
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-07-06
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Braah One link

    Designer Ashish Kumar
    Subsets gurmukhi, latin, latin-ext, menu, vietnamese
    Languages 28% (299/1037) of languages using the Latin script
    First seen 2023-03-24
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Brawler link

    Designer Cyreal
    Subsets latin, menu
    Languages 18% (191/1037) of languages using the Latin script
    First seen 2011-05-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Bree Serif link

    Designer TypeTogether
    Subsets latin, latin-ext, menu
    Languages 11% (116/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Bricolage Grotesque link

    Designer Mathieu Triay
    Subsets cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages 28% (291/1037) of languages using the Latin script
    First seen 2023-06-15
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
  • Full Fontbakery report
  • Bruno Ace link

    Designer Astigmatic
    Subsets latin, latin-ext, menu
    Languages 25% (260/1037) of languages using the Latin script
    First seen 2012-11-16
    Last updated 2023-08-09 (3 months ago)
    Latest releases

    Bruno Ace SC link

    Designer Astigmatic
    Subsets latin, latin-ext, menu
    Languages 25% (260/1037) of languages using the Latin script
    First seen 2012-11-16
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Brygada 1918 link

    Designer Capitalics, Mateusz Machalski, Borys Kosmynka, Ania Wieluńska, Przemysław Hoffer
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu, vietnamese
    Languages
    • 31% (327/1037) of languages using the Latin script
    • 56% (44/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2021-01-27
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Bubblegum Sans link

    Designer Sudtipos
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-23
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Bubbler One link

    Designer Brenda Gallo
    Subsets latin, latin-ext, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-05-09
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Buda link

    Designer Adèle Antignac
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2010-12-20
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb: According to Google Fonts standards, families should have a Regular style.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Buenard link

    Designer FontFuror
    Subsets latin, latin-ext, menu
    Languages 10% (112/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Glyph names are all valid?
  • Full Fontbakery report
  • Bungee link

    Designer David Jonathan Ross
    Subsets latin, latin-ext, menu, vietnamese
    Languages 28% (300/1037) of languages using the Latin script
    First seen 2016-06-20
    Last updated 2023-08-15 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
  • Full Fontbakery report
  • Bungee Color link

    Designer David Jonathan Ross
    Subsets latin, latin-ext, menu, vietnamese
    Languages 10% (111/1037) of languages using the Latin script
    First seen 2022-04-05
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Checking OS/2 fsType does not impose restrictions.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Put an empty glyph on GID 1 right after the .notdef glyph for COLRv0 fonts.
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Bungee Hairline link

    Designer David Jonathan Ross
    Subsets latin, latin-ext, menu, vietnamese
    Languages 28% (300/1037) of languages using the Latin script
    First seen 2016-06-20
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Bungee Inline link

    Designer David Jonathan Ross
    Subsets latin, latin-ext, menu, vietnamese
    Languages 28% (300/1037) of languages using the Latin script
    First seen 2016-06-20
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
  • Full Fontbakery report
  • Bungee Outline link

    Designer David Jonathan Ross
    Subsets latin, latin-ext, menu, vietnamese
    Languages 28% (300/1037) of languages using the Latin script
    First seen 2016-06-20
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Bungee Shade link

    Designer David Jonathan Ross
    Subsets latin, latin-ext, menu, vietnamese
    Languages 28% (300/1037) of languages using the Latin script
    First seen 2016-06-20
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
  • Full Fontbakery report
  • Bungee Spice link

    Designer David Jonathan Ross
    Subsets latin, latin-ext, menu, vietnamese
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2022-04-05
    Last updated 2023-08-16 (3 months ago)
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Checking OS/2 fsType does not impose restrictions.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Butcherman link

    Designer Typomondo
    Subsets latin, latin-ext, menu
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Butterfly Kids link

    Designer Tart Workshop
    Subsets latin, latin-ext, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-02-15
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Cabin link

    Designer Impallari Type, Rodrigo Fuenzalida
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (325/1037) of languages using the Latin script
    First seen 2020-07-22
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
    • ERROR: Check name ID 25 to end with "Italic" for Italic VFs.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Cabin Condensed link

    Designer Impallari Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (335/1037) of languages using the Latin script
    First seen 2011-11-30
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
  • Full Fontbakery report
  • Cabin Sketch link

    Designer Impallari Type
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-03-16
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
  • Full Fontbakery report
  • Caesar Dressing link

    Designer Open Window
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Name table ID 6 (PostScript name) must be consistent across platforms.
  • Full Fontbakery report
  • Cagliostro link

    Designer MADType
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-30
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Cairo link

    Designer Mohamed Gaber, Accademia di Belle Arti di Urbino
    Subsets arabic, latin, latin-ext, menu
    Languages
    • 11% (115/1037) of languages using the Latin script
    • 1% (1/81) of languages using the Arabic script (Supports Urdu)
    First seen 2019-03-21
    Last updated 2023-03-08 (8 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check variable font instances
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Cairo Play link

    Designer Mohamed Gaber, Accademia di Belle Arti di Urbino
    Subsets arabic, latin, latin-ext, menu
    Languages
    • 11% (115/1037) of languages using the Latin script
    • 1% (1/81) of languages using the Arabic script (Supports Urdu)
    First seen 2022-08-05
    Last updated 2023-03-08 (8 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Ensure METADATA.pb lists all font binaries.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.filename field contains font name in right format?
    • FAIL: METADATA.pb: Font filenames match font.filename entries?
    • FAIL: Checking direction of slnt axis angles
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
    • FAIL: Put an empty glyph on GID 1 right after the .notdef glyph for COLRv0 fonts.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Check that OS/2.fsSelection bold & italic settings are unique for each NameID1
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
    • FAIL: STAT table has Axis Value tables?
  • Full Fontbakery report
  • Caladea link

    Designer Andrés Torresi, Carolina Giovagnoli
    Subsets latin, latin-ext, menu
    Languages 25% (264/1037) of languages using the Latin script
    First seen 2020-02-11
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
  • Full Fontbakery report
  • Calistoga link

    Designer Yvonne Schüttler, Sorkin Type, Eben Sorkin
    Subsets latin, latin-ext, menu, vietnamese
    Languages 33% (350/1037) of languages using the Latin script
    First seen 2019-11-04
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Cambay link

    Designer Pooja Saxena
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 6% (5/78) of languages using the Devanagari script (Supports Maithili; Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2015-01-28
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Glyph names are all valid?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Cambo link

    Designer Huerta Tipográfica
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2022-11-16 (1 year, 5 days ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Candal link

    Designer Vernon Adams
    Subsets menu, latin
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2011-03-09
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Cantarell link

    Designer Dave Crossland
    Subsets latin, latin-ext, menu
    Languages 11% (118/1037) of languages using the Latin script
    First seen 2010-05-10
    Last updated 2022-10-06 (1 year, 1 month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Cantata One link

    Designer Joana Correia
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-02-29
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Does full font name begin with the font family name?
  • Full Fontbakery report
  • Cantora One link

    Designer Impallari Type
    Subsets latin, latin-ext, menu
    Languages 11% (119/1037) of languages using the Latin script
    First seen 2012-07-30
    Last updated 2022-10-07 (1 year, 1 month ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Is there a usable "kern" table declared in the font?
  • Full Fontbakery report
  • Caprasimo link

    Designer The DocRepair Project, Phaedra Charles, Flavia Zimbardi
    Subsets latin, latin-ext, menu
    Languages 18% (188/1037) of languages using the Latin script
    First seen 2023-06-14
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
  • Full Fontbakery report
  • Capriola link

    Designer Viktoriya Grabowska
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-07-10
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Caramel link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (309/1037) of languages using the Latin script
    First seen 2021-08-06
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Carattere link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2021-08-26
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Cardo link

    Designer David Perry
    Subsets menu, greek, greek-ext, hebrew, latin, latin-ext
    Languages
    • 27% (282/1037) of languages using the Latin script
    • 33% (2/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Coptic, Greek; Pontic, Greek; Tsakonian)
    • 28% (2/7) of languages using the Hebrew script (Missing Judeo-Persian; Yiddish; Samaritan Aramaic; Judeo-Arabic; Chinese, Hebrew)
    First seen 2011-09-07
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: License URL matches License text on name table?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Are there unwanted tables?
    • FAIL: Glyph names are all valid?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Fonts have consistent underline thickness?
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
    • FAIL: Check glyphs do not have duplicate components which have the same x,y coordinates.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Carlito link

    Designer Łukasz Dziedzic
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 23% (245/1037) of languages using the Latin script
    • 2% (2/78) of languages using the Cyrillic script (Supports Assyrian Neo-Aramaic, Cyrillic; Bosnian (Cyrillic))
    First seen 2023-03-10
    Last updated 2023-03-15 (8 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
  • Full Fontbakery report
  • Carme link

    Designer Rubén Prol
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-07-27
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Carrois Gothic link

    Designer Carrois Apostrophe
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-09-30
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
  • Full Fontbakery report
  • Carrois Gothic SC link

    Designer Carrois Apostrophe
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-09-30
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
  • Full Fontbakery report
  • Carter One link

    Designer Vernon Adams
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-05-04
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Castoro link

    Designer Tiro Typeworks, John Hudson, Paul Hanslow, Kaja Słojewska
    Subsets latin, latin-ext, menu
    Languages 25% (267/1037) of languages using the Latin script
    First seen 2020-11-03
    Last updated 2023-03-16 (8 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Castoro Titling link

    Designer Tiro Typeworks, John Hudson
    Subsets latin, latin-ext, menu
    Languages 26% (279/1037) of languages using the Latin script
    First seen 2023-03-15
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Catamaran link

    Designer Pria Ravichandran
    Subsets latin, latin-ext, menu, tamil
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Tamil script (Missing Badaga)
    First seen 2015-07-08
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure indic fonts have the Indian Rupee Sign glyph.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Caudex link

    Designer Nidud
    Subsets menu, greek, greek-ext, latin, latin-ext
    Languages
    • 31% (326/1037) of languages using the Latin script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2011-05-18
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
    • FAIL: Glyph names are all valid?
    • FAIL: Font contains unique glyph names?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Caveat link

    Designer Impallari Type
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu
    Languages
    • 27% (287/1037) of languages using the Latin script
    • 79% (62/78) of languages using the Cyrillic script
    First seen 2015-09-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Caveat Brush link

    Designer Impallari Type
    Subsets menu, latin, latin-ext
    Languages 11% (119/1037) of languages using the Latin script
    First seen 2015-09-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
  • Full Fontbakery report
  • Cedarville Cursive link

    Designer Kimberly Geswein
    Subsets menu, latin
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2011-06-08
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Ceviche One link

    Designer Miguel Hernandez
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-07
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Chakra Petch link

    Designer Cadson Demak
    Subsets latin, latin-ext, menu, thai, vietnamese
    Languages 32% (341/1037) of languages using the Latin script
    First seen 2018-08-22
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Ensure METADATA.pb lists all font binaries.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Font filenames match font.filename entries?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: METADATA.pb font.filename field contains font name in right format?
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Changa link

    Designer Eduardo Tunni
    Subsets arabic, latin, latin-ext, menu
    Languages
    • 25% (269/1037) of languages using the Latin script
    • 1% (1/81) of languages using the Arabic script (Supports Urdu)
    First seen 2012-10-31
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Changa One link

    Designer Eduardo Tunni
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-30
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Chango link

    Designer Fontstage
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-13
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Charis SIL link

    Designer SIL International
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 48% (504/1037) of languages using the Latin script
    • 80% (63/78) of languages using the Cyrillic script
    First seen 2022-05-12
    Last updated 2022-05-13 (1 year, 6 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Charm link

    Designer Cadson Demak
    Subsets latin, latin-ext, menu, thai, vietnamese
    Languages 32% (341/1037) of languages using the Latin script
    First seen 2018-08-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
  • Full Fontbakery report
  • Charmonman link

    Designer Cadson Demak
    Subsets latin, latin-ext, menu, thai, vietnamese
    Languages 32% (334/1037) of languages using the Latin script
    First seen 2018-08-22
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Chathura link

    Designer Appaji Ambarisha Darbha
    Subsets latin, menu, telugu
    Languages 10% (105/1037) of languages using the Latin script
    First seen 2017-05-09
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check font has a license.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains glyphs for whitespace characters?
  • Full Fontbakery report
  • Chau Philomene One link

    Designer Vicente Lamónaca
    Subsets latin, latin-ext, menu
    Languages 10% (106/1037) of languages using the Latin script
    First seen 2012-04-04
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb: Copyright notice is the same in all fonts?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
  • Full Fontbakery report
  • Chela One link

    Designer Miguel Hernandez
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-10-05
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Chelsea Market link

    Designer Tart Workshop
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-04
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Chenla link

    Designer Danh Hong
    Subsets menu, khmer
    Languages 100% (1/1) of languages using the Khmer script
    First seen 2011-03-02
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Checking OS/2 fsType does not impose restrictions.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Are there unwanted Apple tables?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check font can render its own name.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Are there unwanted tables?
    • FAIL: Does the font have any invalid feature tags?
    • FAIL: Does the font have any invalid language tags?
  • Full Fontbakery report
  • Cherish link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (316/1037) of languages using the Latin script
    First seen 2021-08-13
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Cherry Bomb One link

    Designer Satsuyako
    Subsets japanese, latin, latin-ext, menu, vietnamese
    Languages
    • Defined language in metadata: ja_Kana
    • Defined language in metadata: ja_Hira
    • 28% (298/1037) of languages using the Latin script
    First seen 2020-12-14
    Last updated 2023-04-27 (6 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Cherry Swash link

    Designer Nataliya Kasatkina
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-10-05
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Chicle link

    Designer Sudtipos
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-30
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Chilanka link

    Designer SMC, Santhosh Thottingal
    Subsets latin, latin-ext, malayalam, menu
    Languages
    • 10% (108/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Malayalam script
    First seen 2019-06-10
    Last updated 2023-03-30 (7 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Chivo link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (324/1037) of languages using the Latin script
    First seen 2011-12-07
    Last updated 2022-11-04 (1 year, 17 days ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
  • Full Fontbakery report
  • Chivo Mono link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 33% (343/1037) of languages using the Latin script
    First seen 2022-11-03
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
  • Full Fontbakery report
  • Chokokutai link

    Designer Font Zone 108
    Subsets japanese, latin, latin-ext, menu, vietnamese
    Languages
    • Defined language in metadata: ja_Kana
    • Defined language in metadata: ja_Hira
    • 28% (298/1037) of languages using the Latin script
    First seen 2020-12-14
    Last updated 2023-04-27 (6 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Chonburi link

    Designer Cadson Demak
    Subsets menu, latin, latin-ext, thai, vietnamese
    Languages 29% (310/1037) of languages using the Latin script
    First seen 2015-07-08
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
  • Full Fontbakery report
  • Cinzel link

    Designer Natanael Gama
    Subsets latin, latin-ext, menu
    Languages 24% (256/1037) of languages using the Latin script
    First seen 2012-10-24
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Cinzel Decorative link

    Designer Natanael Gama
    Subsets latin, menu
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-10-05
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: License URL matches License text on name table?
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Clicker Script link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-11-11
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Climate Crisis link

    Designer Daniel Coull, Eino Korkala
    Subsets latin, latin-ext, menu
    Languages 32% (339/1037) of languages using the Latin script
    First seen 2022-09-30
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Validate METADATA.pb axes tags are defined in gf_axisregistry.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Coda link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2010-12-07
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Are there unwanted Apple tables?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking correctness of monospaced metadata.
    • FAIL: MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?
  • Full Fontbakery report
  • Codystar link

    Designer Neapolitan
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-03-14
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb: Copyright notice is the same in all fonts?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font has all mandatory 'name' table entries?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Checking correctness of monospaced metadata.
    • FAIL: MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?
  • Full Fontbakery report
  • Coiny link

    Designer Marcelo Magalhães
    Subsets latin, latin-ext, menu, tamil, vietnamese
    Languages
    • 24% (258/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Tamil script (Missing Badaga)
    First seen 2016-06-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Whitespace glyphs have ink?
    • FAIL: Are there unwanted tables?
    • FAIL: Glyph names are all valid?
    • FAIL: Font contains unique glyph names?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Combo link

    Designer Eduardo Tunni
    Subsets menu, latin, latin-ext
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2012-09-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Comfortaa link

    Designer Johan Aakerlund
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu, vietnamese
    Languages
    • 32% (340/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2011-08-10
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Comforter link

    Designer Robert Leuschke
    Subsets cyrillic, latin, latin-ext, menu, vietnamese
    Languages
    • 31% (330/1037) of languages using the Latin script
    • 19% (15/78) of languages using the Cyrillic script
    First seen 2021-09-29
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Comforter Brush link

    Designer Robert Leuschke
    Subsets cyrillic, latin, latin-ext, menu, vietnamese
    Languages
    • 31% (330/1037) of languages using the Latin script
    • 19% (15/78) of languages using the Cyrillic script
    First seen 2021-09-17
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Comic Neue link

    Designer Craig Rozynski, Hrant Papazian
    Subsets latin, menu
    Languages 24% (253/1037) of languages using the Latin script
    First seen 2020-03-12
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Comme link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu
    Languages 27% (287/1037) of languages using the Latin script
    First seen 2023-03-29
    Last updated 2023-03-29 (7 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Commissioner link

    Designer Kostas Bartsokas
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu, vietnamese
    Languages
    • 32% (334/1037) of languages using the Latin script
    • 82% (64/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2020-07-20
    Last updated 2023-02-01 (9 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
    • FAIL: Check correctness of STAT table strings
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Concert One link

    Designer Johan Kallas, Mihkel Virkus
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-23
    Last updated 2023-08-09 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Condiment link

    Designer Sudtipos
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-25
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Content link

    Designer Danh Hong
    Subsets menu, khmer
    Languages 100% (1/1) of languages using the Khmer script
    First seen 2011-03-02
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Checking OS/2 fsType does not impose restrictions.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Are there unwanted Apple tables?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check font can render its own name.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Are there unwanted tables?
    • FAIL: Does the font have any invalid feature tags?
    • FAIL: Does the font have any invalid language tags?
  • Full Fontbakery report
  • Contrail One link

    Designer Riccardo De Franceschi
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-10-26
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Convergence link

    Designer Nicolás Silva, John Vargas Beltrán
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-09
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Does METADATA.pb copyright field contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Copse link

    Designer Dan Rhatigan
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2010-12-15
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Are there unwanted tables?
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Corben link

    Designer Vernon Adams
    Subsets menu, latin, latin-ext
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2010-12-20
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb: Copyright notice is the same in all fonts?
    • FAIL: Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Glyph names are all valid?
    • FAIL: Font contains unique glyph names?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Corinthia link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (308/1037) of languages using the Latin script
    First seen 2021-08-26
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Cormorant link

    Designer Christian Thalmann
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 33% (344/1037) of languages using the Latin script
    • 82% (64/78) of languages using the Cyrillic script
    First seen 2017-01-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Cormorant Garamond link

    Designer Christian Thalmann
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 33% (344/1037) of languages using the Latin script
    • 82% (64/78) of languages using the Cyrillic script
    First seen 2017-01-18
    Last updated 2022-07-05 (1 year, 4 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Glyph names are all valid?
  • Full Fontbakery report
  • Cormorant Infant link

    Designer Christian Thalmann
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 33% (343/1037) of languages using the Latin script
    • 82% (64/78) of languages using the Cyrillic script
    First seen 2017-01-18
    Last updated 2022-07-05 (1 year, 4 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Glyph names are all valid?
  • Full Fontbakery report
  • Cormorant SC link

    Designer Christian Thalmann
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 33% (344/1037) of languages using the Latin script
    • 82% (64/78) of languages using the Cyrillic script
    First seen 2017-01-18
    Last updated 2022-07-05 (1 year, 4 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Glyph names are all valid?
  • Full Fontbakery report
  • Cormorant Unicase link

    Designer Christian Thalmann
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 33% (344/1037) of languages using the Latin script
    • 82% (64/78) of languages using the Cyrillic script
    First seen 2017-01-18
    Last updated 2022-07-05 (1 year, 4 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Glyph names are all valid?
  • Full Fontbakery report
  • Cormorant Upright link

    Designer Christian Thalmann
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (335/1037) of languages using the Latin script
    First seen 2017-01-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: PPEM must be an integer on hinted fonts.
  • Full Fontbakery report
  • Courgette link

    Designer Karolina Lach
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-07-10
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Courier Prime link

    Designer Alan Dague-Greene
    Subsets latin, latin-ext, menu
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2019-12-05
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Checking correctness of monospaced metadata.
  • Full Fontbakery report
  • Coustard link

    Designer Vernon Adams
    Subsets latin, menu
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2011-08-10
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Covered By Your Grace link

    Designer Kimberly Geswein
    Subsets menu, latin
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2010-12-07
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Font has ttfautohint params?
    • FAIL: Font has old ttfautohint applied?
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • ERROR: Check for font-v versioning.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Creepster link

    Designer Sideshow
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Crete Round link

    Designer TypeTogether
    Subsets menu, latin, latin-ext
    Languages 11% (116/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
  • Full Fontbakery report
  • Crimson Pro link

    Designer Jacques Le Bailly
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (339/1037) of languages using the Latin script
    First seen 2018-12-05
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Crimson Text link

    Designer Sebastian Kosch
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (311/1037) of languages using the Latin script
    First seen 2011-01-26
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Croissant One link

    Designer Eduardo Tunni
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-11-12
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Glyph names are all valid?
  • Full Fontbakery report
  • Cuprum link

    Designer Jovanny Lemonad
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 25% (269/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    First seen 2012-04-04
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Cute Font link

    Designer TypoDesign Lab. Inc
    Subsets korean, menu
    Languages 10% (105/1037) of languages using the Latin script
    First seen 2018-02-23
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: Check METADATA.pb includes production subsets.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Does full font name begin with the font family name?
  • Full Fontbakery report
  • Cutive link

    Designer Vernon Adams
    Subsets menu, latin, latin-ext
    Languages 10% (112/1037) of languages using the Latin script
    First seen 2012-02-29
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Checking correctness of monospaced metadata.
    • FAIL: MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?
    • FAIL: Does the font have any invalid language tags?
  • Full Fontbakery report
  • Cutive Mono link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-10-26
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking correctness of monospaced metadata.
  • Full Fontbakery report
  • DM Mono link

    Designer Colophon Foundry
    Subsets latin, latin-ext, menu
    Languages 25% (261/1037) of languages using the Latin script
    First seen 2020-04-15
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • DM Sans link

    Designer Colophon Foundry, Jonny Pinhorn, Indian Type Foundry
    Subsets latin, latin-ext, menu
    Languages 26% (270/1037) of languages using the Latin script
    First seen 2019-06-12
    Last updated 2023-06-14 (5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • DM Serif Display link

    Designer Colophon Foundry
    Subsets latin, latin-ext, menu
    Languages 22% (234/1037) of languages using the Latin script
    First seen 2019-06-12
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • DM Serif Text link

    Designer Colophon Foundry
    Subsets latin, latin-ext, menu
    Languages 22% (234/1037) of languages using the Latin script
    First seen 2019-06-12
    Last updated 2022-12-02 (11 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Dai Banna SIL link

    Designer SIL International
    Subsets latin, latin-ext, menu, new-tai-lue
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2023-07-06
    Last updated 2023-07-06 (4 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Damion link

    Designer Vernon Adams
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-04-27
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Dancing Script link

    Designer Impallari Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 28% (299/1037) of languages using the Latin script
    First seen 2011-05-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Dangrek link

    Designer Danh Hong
    Subsets khmer, latin, menu
    Languages
    • 10% (104/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Khmer script
    First seen 2011-03-02
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Darker Grotesque link

    Designer Gabriel Lam, ViệtAnh Nguyễn
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (302/1037) of languages using the Latin script
    First seen 2019-06-19
    Last updated 2023-05-19 (6 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
  • Full Fontbakery report
  • Darumadrop One link

    Designer Maniackers Design
    Subsets japanese, latin, latin-ext, menu
    Languages
    • Defined language in metadata: ja_Kana
    • Defined language in metadata: ja_Hira
    • 19% (198/1037) of languages using the Latin script
    First seen 2020-12-14
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • David Libre link

    Designer Monotype Imaging Inc., SIL International, Meir Sadan
    Subsets hebrew, latin, latin-ext, menu, vietnamese
    Languages
    • 49% (510/1037) of languages using the Latin script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2021-07-23
    Last updated 2022-10-27 (1 year, 25 days ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: Check font names are correct
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Does full font name begin with the font family name?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Dawning of a New Day link

    Designer Kimberly Geswein
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-04-14
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Days One link

    Designer Jovanny Lemonad
    Subsets menu, latin
    Languages
    • 10% (107/1037) of languages using the Latin script
    • 1% (1/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic))
    First seen 2011-08-17
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Dekko link

    Designer Sorkin Type
    Subsets menu, devanagari, latin, latin-ext
    Languages
    • 11% (116/1037) of languages using the Latin script
    • 5% (4/78) of languages using the Devanagari script (Supports Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2015-01-28
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Checking correctness of monospaced metadata.
    • FAIL: MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?
  • Full Fontbakery report
  • Dela Gothic One link

    Designer artakana
    Subsets cyrillic, greek, japanese, latin, latin-ext, menu, vietnamese
    Languages
    • 28% (294/1037) of languages using the Latin script
    • 21% (17/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2020-12-14
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check font has a license.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Delicious Handrawn link

    Designer Agung Rohmat
    Subsets latin, latin-ext, menu
    Languages 26% (274/1037) of languages using the Latin script
    First seen 2023-01-06
    Last updated 2023-08-09 (3 months ago)
    Latest releases

    Delius link

    Designer Natalia Raices
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-07-27
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Delius Swash Caps link

    Designer Natalia Raices
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-08-03
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Does the font have any invalid script tags?
  • Full Fontbakery report
  • Delius Unicase link

    Designer Natalia Raices
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-10-12
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
  • Full Fontbakery report
  • Della Respira link

    Designer Nathan Willis
    Subsets menu, latin
    Languages 10% (106/1037) of languages using the Latin script
    First seen 2012-04-04
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check METADATA.pb font weights are correct.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Denk One link

    Designer Sorkin Type
    Subsets cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages 44% (462/1037) of languages using the Latin script
    First seen 2012-11-26
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
  • Full Fontbakery report
  • Devonshire link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-11-16
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Dhurjati link

    Designer Purushoth Kumar Guttula
    Subsets menu, latin, telugu
    Languages 10% (105/1037) of languages using the Latin script
    First seen 2014-12-10
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Glyph names are all valid?
    • FAIL: Font contains unique glyph names?
  • Full Fontbakery report
  • Dhyana link

    Designer Vernon Adams
    Subsets menu, lao
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-12-15
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Didact Gothic link

    Designer Daniel Johnson, Cyreal
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu
    Languages
    • 45% (477/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 33% (2/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Coptic, Greek; Pontic, Greek; Tsakonian)
    First seen 2011-05-04
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
  • Full Fontbakery report
  • Digital Numbers link

    Designer Stephan Ahlf
    Subsets menu, latin
    Languages 10% (106/1037) of languages using the Latin script
    First seen 2015-06-24
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Checking correctness of monospaced metadata.
  • Full Fontbakery report
  • Diphylleia link

    Designer Minha Hyung, JAMO
    Subsets korean, latin, latin-ext, menu
    Languages
    • 16% (175/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Korean script
    First seen 2023-05-18
    Last updated 2023-05-25 (5 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Diplomata link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu
    Languages 26% (273/1037) of languages using the Latin script
    First seen 2012-01-25
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
  • Full Fontbakery report
  • Diplomata SC link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu
    Languages 26% (273/1037) of languages using the Latin script
    First seen 2012-01-25
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Do Hyeon link

    Designer Woowahan Brothers
    Subsets korean, latin, menu
    Languages
    First seen 2018-02-24
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check font can render its own name.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
  • Full Fontbakery report
  • Dokdo link

    Designer FONTRIX
    Subsets korean, menu
    Languages 10% (105/1037) of languages using the Latin script
    First seen 2018-02-23
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: Check METADATA.pb includes production subsets.
    • FAIL: Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: PostScript name follows OpenType specification requirements?
    • FAIL: Name table ID 6 (PostScript name) must be consistent across platforms.
  • Full Fontbakery report
  • Domine link

    Designer Impallari Type
    Subsets latin, latin-ext, menu
    Languages 28% (292/1037) of languages using the Latin script
    First seen 2012-11-30
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
  • Full Fontbakery report
  • Donegal One link

    Designer Gary Lonergan
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-11-26
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Dongle link

    Designer Yanghee Ryu
    Subsets korean, latin, latin-ext, menu, vietnamese
    Languages
    • 30% (317/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Korean script
    First seen 2021-06-14
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Doppio One link

    Designer Szymon Celej
    Subsets menu, latin, latin-ext
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2012-02-22
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Dorsa link

    Designer Santiago Orozco
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-08-31
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Dosis link

    Designer Impallari Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 24% (252/1037) of languages using the Latin script
    First seen 2019-01-23
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • DotGothic16 link

    Designer Fontworks Inc.
    Subsets cyrillic, japanese, latin, latin-ext, menu
    Languages
    • 21% (220/1037) of languages using the Latin script
    • 10% (8/78) of languages using the Cyrillic script (Supports Moksha; Russian; Nogai; Crimean Turkish; Abaza; Erzya; Kumyk; Bulgarian)
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2020-12-15
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Checking correctness of monospaced metadata.
  • Full Fontbakery report
  • Dr Sugiyama link

    Designer Sudtipos
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-30
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Duru Sans link

    Designer Onur Yazıcıgil
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • DynaPuff link

    Designer Toshi Omagari, Jennifer Daniel
    Subsets cyrillic-ext, latin, latin-ext, menu
    Languages 25% (264/1037) of languages using the Latin script
    First seen 2022-05-19
    Last updated 2022-12-14 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Is this a proper HTML snippet?
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Dynalight link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • EB Garamond link

    Designer Georg Duffner, Octavio Pardo
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 32% (335/1037) of languages using the Latin script
    • 79% (62/78) of languages using the Cyrillic script
    • 33% (2/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Coptic, Greek; Pontic, Greek; Tsakonian)
    First seen 2011-03-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check family name for GF Guide compliance.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Eagle Lake link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-07-11
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • East Sea Dokdo link

    Designer YoonDesign Inc
    Subsets korean, latin, menu
    Languages 10% (105/1037) of languages using the Latin script
    First seen 2018-03-12
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Does full font name begin with the font family name?
    • FAIL: Name table ID 6 (PostScript name) must be consistent across platforms.
  • Full Fontbakery report
  • Eater link

    Designer Typomondo
    Subsets menu, latin, latin-ext
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Economica link

    Designer Vicente Lamónaca
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-02-29
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
  • Full Fontbakery report
  • Eczar link

    Designer Rosetta, Vaibhav Singh
    Subsets devanagari, greek, greek-ext, latin, latin-ext, menu
    Languages
    • 24% (253/1037) of languages using the Latin script
    • 6% (5/78) of languages using the Devanagari script (Supports Maithili; Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2015-06-03
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Edu NSW ACT Foundation link

    Designer Tina Anderson, Corey Anderson
    Subsets latin, menu
    Languages 10% (105/1037) of languages using the Latin script
    First seen 2022-06-10
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Edu QLD Beginner link

    Designer Tina Anderson, Corey Anderson
    Subsets latin, menu
    Languages 10% (105/1037) of languages using the Latin script
    First seen 2022-06-22
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Edu SA Beginner link

    Designer Tina Anderson, Corey Anderson
    Subsets latin, menu
    Languages 10% (105/1037) of languages using the Latin script
    First seen 2022-06-10
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Edu TAS Beginner link

    Designer Tina Anderson, Corey Anderson
    Subsets latin, menu
    Languages 10% (105/1037) of languages using the Latin script
    First seen 2022-06-10
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Edu VIC WA NT Beginner link

    Designer Tina Anderson, Corey Anderson
    Subsets latin, menu
    Languages 10% (105/1037) of languages using the Latin script
    First seen 2022-06-10
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Ek Mukta link

    Designer Ek Type
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 6% (5/78) of languages using the Devanagari script (Supports Maithili; Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2014-05-12
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • El Messiri link

    Designer Mohamed Gaber, Jovanny Lemonad
    Subsets arabic, cyrillic, latin, latin-ext, menu
    Languages
    • 10% (107/1037) of languages using the Latin script
    • 1% (1/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic))
    • 1% (1/81) of languages using the Arabic script (Supports Urdu)
    First seen 2016-06-20
    Last updated 2022-11-23 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Electrolize link

    Designer Gaslight
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-07
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
  • Full Fontbakery report
  • Elsie link

    Designer Alejandro Inler
    Subsets latin, latin-ext, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-11-12
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Elsie Swash Caps link

    Designer Alejandro Inler
    Subsets latin, latin-ext, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-11-12
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Emblema One link

    Designer Riccardo De Franceschi
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-01-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Font contains unique glyph names?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Emilys Candy link

    Designer Neapolitan
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-02-29
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Encode Sans link

    Designer Impallari Type, Andres Torresi, Jacques Le Bailly
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (331/1037) of languages using the Latin script
    First seen 2020-06-24
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check variable font instances
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Encode Sans Condensed link

    Designer Impallari Type, Andres Torresi, Jacques Le Bailly
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (331/1037) of languages using the Latin script
    First seen 2017-02-08
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Check font names are correct
    • FAIL: Does full font name begin with the font family name?
  • Full Fontbakery report
  • Encode Sans Expanded link

    Designer Impallari Type, Andres Torresi, Jacques Le Bailly
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (331/1037) of languages using the Latin script
    First seen 2017-02-08
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
  • Full Fontbakery report
  • Encode Sans SC link

    Designer Impallari Type, Andres Torresi, Jacques Le Bailly
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (336/1037) of languages using the Latin script
    First seen 2020-06-24
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check variable font instances
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Encode Sans Semi Condensed link

    Designer Impallari Type, Andres Torresi, Jacques Le Bailly
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (331/1037) of languages using the Latin script
    First seen 2017-02-08
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Check font names are correct
    • FAIL: Does full font name begin with the font family name?
  • Full Fontbakery report
  • Encode Sans Semi Expanded link

    Designer Impallari Type, Andres Torresi, Jacques Le Bailly
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (331/1037) of languages using the Latin script
    First seen 2017-02-08
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Check font names are correct
    • FAIL: Does full font name begin with the font family name?
  • Full Fontbakery report
  • Engagement link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-12-07
    Last updated 2023-08-09 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Englebert link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-11-02
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Enriqueta link

    Designer FontFuror
    Subsets latin, latin-ext, menu
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-12-13
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
  • Full Fontbakery report
  • Ephesis link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (316/1037) of languages using the Latin script
    First seen 2021-08-06
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Epilogue link

    Designer Tyler Finck, ETC
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (334/1037) of languages using the Latin script
    First seen 2020-06-26
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Erica One link

    Designer Miguel Hernandez
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-18
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Esteban link

    Designer Angélica Díaz
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-11
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Estonia link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 26% (270/1037) of languages using the Latin script
    First seen 2021-08-26
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Euphoria Script link

    Designer Sabrina Mariela Lopez
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-02-08
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Ewert link

    Designer Johan Kallas, Mihkel Virkus
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-02-08
    Last updated 2023-08-09 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Exo link

    Designer Natanael Gama, Robin Mientjes
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (321/1037) of languages using the Latin script
    First seen 2012-02-08
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Exo 2 link

    Designer Natanael Gama
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 22% (231/1037) of languages using the Latin script
    • 78% (61/78) of languages using the Cyrillic script
    First seen 2013-12-04
    Last updated 2022-06-16 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Expletus Sans link

    Designer Designtown
    Subsets latin, latin-ext, menu
    Languages 22% (234/1037) of languages using the Latin script
    First seen 2011-05-04
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Explora link

    Designer Robert Leuschke
    Subsets cherokee, latin, latin-ext, menu, vietnamese
    Languages
    • 30% (317/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Cherokee script
    First seen 2021-08-10
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Fahkwang link

    Designer Cadson Demak
    Subsets latin, latin-ext, menu, thai, vietnamese
    Languages 32% (341/1037) of languages using the Latin script
    First seen 2018-08-22
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Familjen Grotesk link

    Designer Familjen STHLM AB
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (321/1037) of languages using the Latin script
    First seen 2022-03-02
    Last updated 2022-06-16 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Fanwood Text link

    Designer Barry Schwartz
    Subsets menu, latin
    Languages 25% (260/1037) of languages using the Latin script
    First seen 2011-08-31
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Farro link

    Designer Grayscale
    Subsets latin, latin-ext, menu
    Languages 26% (276/1037) of languages using the Latin script
    First seen 2019-07-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    • (5 years ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Farsan link

    Designer Pooja Saxena
    Subsets gujarati, latin, latin-ext, menu, vietnamese
    Languages 28% (294/1037) of languages using the Latin script
    First seen 2016-06-20
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Glyph names are all valid?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Fascinate link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-12-07
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check the OS/2 usWeightClass is appropriate for the font's best SubFamily name.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check METADATA.pb font weights are correct.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Fascinate Inline link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-12-07
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check METADATA.pb font weights are correct.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Faster One link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu
    Languages 26% (273/1037) of languages using the Latin script
    First seen 2012-10-26
    Last updated 2023-02-08 (9 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Fasthand link

    Designer Danh Hong
    Subsets khmer, latin, menu
    Languages
    • 10% (104/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Khmer script
    First seen 2012-05-24
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Fauna One link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu
    Languages 26% (273/1037) of languages using the Latin script
    First seen 2013-06-05
    Last updated 2023-01-31 (9 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Faustina link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 33% (346/1037) of languages using the Latin script
    First seen 2016-12-03
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Federant link

    Designer Cyreal
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-10-05
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
  • Full Fontbakery report
  • Federo link

    Designer Cyreal
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-07-27
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Glyph names are all valid?
    • FAIL: Font contains unique glyph names?
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Felipa link

    Designer Fontstage
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-02-08
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Fenix link

    Designer Fernando Díaz
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-09-24
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Festive link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 26% (275/1037) of languages using the Latin script
    First seen 2021-04-23
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Figtree link

    Designer Erik Kennedy
    Subsets latin, latin-ext, menu
    Languages 25% (269/1037) of languages using the Latin script
    First seen 2022-07-21
    Last updated 2023-06-28 (4 months ago)
    Latest releases
    • v2.0.3 (7 months ago)
    • v2.0.2 (8 months ago)
    • v2.0.1 (10 months ago)
    • v2.0.0 (1 year, 1 month ago)
    • v1.0.2 (1 year, 2 months ago)
    • (1 year, 2 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Finger Paint link

    Designer Carrois Apostrophe
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-09-30
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Finlandica link

    Designer Helsinki Type Studio, Niklas Ekholm, Juho Hiilivirta, Jaakko Suomalainen
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu
    Languages
    • 27% (284/1037) of languages using the Latin script
    • 78% (61/78) of languages using the Cyrillic script
    First seen 2022-05-13
    Last updated 2022-09-29 (1 year, 1 month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Font contains '.notdef' as its first glyph?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Fira Code link

    Designer The Mozilla Foundation, Telefonica S.A., Nikita Prokopov
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu
    Languages
    • 26% (279/1037) of languages using the Latin script
    • 83% (65/78) of languages using the Cyrillic script
    • 33% (2/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Coptic, Greek; Pontic, Greek; Tsakonian)
    First seen 2019-03-25
    Last updated 2023-09-27 (a month ago)
    Latest releases
    • 6.2 (1 year, 11 months ago)
    • 6.1 (1 year, 11 months ago)
    • 6 (1 year, 11 months ago)
    • 5.2 (3 years ago)
    • 5.1 (3 years ago)
    • 5 (3 years ago)
    • 4 (3 years ago)
    • 3.1 (3 years ago)
    • 3 (3 years ago)
    • 2 (4 years ago)
    • 1.207 (4 years ago)
    • 1.206 (5 years ago)
    • 1.205 (5 years ago)
    • 1.204 (7 years ago)
    • 1.203 (7 years ago)
    • 1.202 (7 years ago)
    • 1.201 (7 years ago)
    • 1.200 (7 years ago)
    • 1.102 (7 years ago)
    • 1.101 (7 years ago)
    • 1.100 (7 years ago)
    • 1.000 (7 years ago)
    • 0.6 (8 years ago)
    • 0.5 (8 years ago)
    • 0.4 (8 years ago)
    • 0.3 (8 years ago)
    • 0.2.1 (8 years ago)
    • 0.2 (8 years ago)
    • 0.1 (9 years ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Does the font have any invalid script tags?
  • Full Fontbakery report
  • Fira Mono link

    Designer Carrois Apostrophe
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu
    Languages
    • 25% (268/1037) of languages using the Latin script
    • 80% (63/78) of languages using the Cyrillic script
    • 33% (2/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Coptic, Greek; Pontic, Greek; Tsakonian)
    First seen 2014-06-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
  • Full Fontbakery report
  • Fira Sans link

    Designer Carrois Apostrophe
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 45% (469/1037) of languages using the Latin script
    • 83% (65/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2014-06-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Fira Sans Condensed link

    Designer Carrois Apostrophe
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 45% (469/1037) of languages using the Latin script
    • 83% (65/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2016-12-02
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Fira Sans Extra Condensed link

    Designer Carrois Apostrophe
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 45% (469/1037) of languages using the Latin script
    • 83% (65/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2016-12-06
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Fjalla One link

    Designer Sorkin Type, Irina Smirnova
    Subsets cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages 37% (390/1037) of languages using the Latin script
    First seen 2012-10-27
    Last updated 2023-03-15 (8 months ago)
    Latest releases

    Fjord One link

    Designer Viktoriya Grabowska
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-02
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Flamenco link

    Designer LatinoType
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Flavors link

    Designer Sideshow
    Subsets latin, latin-ext, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-09 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Fleur De Leah link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (310/1037) of languages using the Latin script
    First seen 2021-09-02
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Flow Block link

    Designer Dan Ross
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 19% (205/1037) of languages using the Latin script
    • 1% (1/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic))
    First seen 2021-10-22
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
  • Full Fontbakery report
  • Flow Circular link

    Designer Dan Ross
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 19% (205/1037) of languages using the Latin script
    • 1% (1/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic))
    First seen 2021-10-22
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
  • Full Fontbakery report
  • Flow Rounded link

    Designer Dan Ross
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 20% (211/1037) of languages using the Latin script
    • 1% (1/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic))
    First seen 2021-10-22
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
  • Full Fontbakery report
  • Foldit link

    Designer Sophia Tai
    Subsets latin, latin-ext, vietnamese, menu
    Languages 29% (305/1037) of languages using the Latin script
    First seen 2022-10-03
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    • 1.003 (1 year, 2 months ago)
    • v1.002 (1 year, 2 months ago)
    • v1.001 (1 year, 2 months ago)
    • v1.000 (1 year, 2 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Fondamento link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-11-16
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb: Copyright notice is the same in all fonts?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Description strings in the name table must not contain copyright info.
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Forum link

    Designer Denis Masharov
    Subsets menu, cyrillic, cyrillic-ext, latin, latin-ext
    Languages
    • 17% (180/1037) of languages using the Latin script
    • 10% (8/78) of languages using the Cyrillic script (Supports Uyghur (Cyrillic); Nogai; Macedonian; Azerbaijani (Cyrillic); Bosnian (Cyrillic); Serbian; Talysh, Cyrillic; Bulgarian)
    First seen 2011-07-06
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Description strings in the name table must not contain copyright info.
    • FAIL: Is there a usable "kern" table declared in the font?
  • Full Fontbakery report
  • Fragment Mono link

    Designer Wei Huang, URW Design Studio
    Subsets cyrillic-ext, latin, latin-ext, menu
    Languages 25% (265/1037) of languages using the Latin script
    First seen 2022-10-24
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Francois One link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (324/1037) of languages using the Latin script
    First seen 2011-05-04
    Last updated 2023-06-16 (5 months ago)
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Frank Ruhl Libre link

    Designer Yanek Iontef
    Subsets hebrew, latin, latin-ext, menu
    Languages
    • 26% (274/1037) of languages using the Latin script
    • 57% (4/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic)
    First seen 2016-06-20
    Last updated 2023-06-14 (5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Fraunces link

    Designer Undercase Type, Phaedra Charles, Flavia Zimbardi
    Subsets latin, latin-ext, menu, vietnamese
    Languages 26% (272/1037) of languages using the Latin script
    First seen 2020-10-29
    Last updated 2022-12-13 (11 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check font names are correct
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: Check name ID 25 to end with "Italic" for Italic VFs.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
    • ERROR: Ensure 'ital' STAT axis is boolean value (derived from com.google.fonts/check/italic_axis_in_stat_is_boolean)
  • Full Fontbakery report
  • Freckle Face link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-11-26
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Fredericka the Great link

    Designer Tart Workshop
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-09 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Fredoka link

    Designer Milena Brandão, Hafontia
    Subsets hebrew, latin, latin-ext, menu
    Languages
    • 21% (226/1037) of languages using the Latin script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2021-12-15
    Last updated 2023-02-28 (8 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Freehand link

    Designer Danh Hong
    Subsets khmer, latin, menu
    Languages
    • 10% (104/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Khmer script
    First seen 2011-03-02
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Fresca link

    Designer Fontstage
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-07
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Frijole link

    Designer Sideshow
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Checking OS/2 fsType does not impose restrictions.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Checking correctness of monospaced metadata.
    • FAIL: MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?
  • Full Fontbakery report
  • Fruktur link

    Designer Viktoriya Grabowska, Eben Sorkin
    Subsets cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages 43% (455/1037) of languages using the Latin script
    First seen 2013-01-16
    Last updated 2023-03-15 (8 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • Full Fontbakery report
  • Fugaz One link

    Designer LatinoType
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Fuggles link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 27% (282/1037) of languages using the Latin script
    First seen 2021-04-29
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Fuzzy Bubbles link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2021-11-02
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • GFS Didot link

    Designer Greek Font Society
    Subsets menu, greek
    Languages
    • 16% (171/1037) of languages using the Latin script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2010-09-21
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Is this a proper HTML snippet?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • GFS Neohellenic link

    Designer Greek Font Society
    Subsets menu, greek
    Languages
    • 16% (171/1037) of languages using the Latin script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2010-09-21
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Is this a proper HTML snippet?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb: Copyright notice is the same in all fonts?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Whitespace glyphs have ink?
    • FAIL: Are there unwanted tables?
    • FAIL: Glyph names are all valid?
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Font contains unique glyph names?
    • FAIL: Fonts have consistent underline thickness?
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Gabarito link

    Designer Naipe Foundry, Leandro Assis, Álvaro Franca, Felipe Casaprima
    Subsets latin, latin-ext, menu
    Languages 28% (299/1037) of languages using the Latin script
    First seen 2023-09-13
    Last updated 2023-10-26 (26 days ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Gabriela link

    Designer Eduardo Tunni
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu
    Languages
    • 26% (271/1037) of languages using the Latin script
    • 65% (51/78) of languages using the Cyrillic script
    First seen 2013-03-06
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
  • Full Fontbakery report
  • Gaegu link

    Designer JIKJI SOFT
    Subsets korean, menu
    Languages 10% (105/1037) of languages using the Latin script
    First seen 2018-02-28
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: Check METADATA.pb includes production subsets.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Does full font name begin with the font family name?
  • Full Fontbakery report
  • Gafata link

    Designer Lautaro Hourcade
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-10-31
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Gajraj One link

    Designer Saurabh Sharma
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 25% (263/1037) of languages using the Latin script
    • 6% (5/78) of languages using the Devanagari script (Supports Maithili; Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2023-01-23
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Galada link

    Designer Black Foundry
    Subsets bengali, latin, menu
    Languages
    • 10% (107/1037) of languages using the Latin script
    • 23% (4/17) of languages using the Bangla script (Supports Assamese; Bengali; Bishnupriya; Rangpuri)
    First seen 2016-06-20
    Last updated 2023-08-09 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Galdeano link

    Designer Dario Manuel Muhafara
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-07
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Galindo link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-08-13
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Gamja Flower link

    Designer YoonDesign Inc
    Subsets korean, latin, menu
    Languages
    • 10% (105/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Korean script
    First seen 2018-02-23
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Ensure files are not too large.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Does full font name begin with the font family name?
  • Full Fontbakery report
  • Gantari link

    Designer Lafontype
    Subsets latin, latin-ext, menu
    Languages 26% (271/1037) of languages using the Latin script
    First seen 2022-05-26
    Last updated 2022-06-02 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Gasoek One link

    Designer Jiashuo Zhang, JAMO
    Subsets korean, latin, latin-ext, menu
    Languages
    • 18% (195/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Korean script
    First seen 2023-05-18
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Gayathri link

    Designer SMC, Binoy Dominic
    Subsets latin, malayalam, menu
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Malayalam script
    First seen 2019-06-10
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Gelasio link

    Designer Eben Sorkin
    Subsets latin, latin-ext, menu, vietnamese
    Languages 33% (349/1037) of languages using the Latin script
    First seen 2019-12-03
    Last updated 2022-06-16 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Gemunu Libre link

    Designer Mooniak
    Subsets latin, latin-ext, menu, sinhala
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2017-05-29
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Genos link

    Designer Robert Leuschke
    Subsets cherokee, latin, latin-ext, menu, vietnamese
    Languages 30% (320/1037) of languages using the Latin script
    First seen 2021-10-08
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font contains '.notdef' as its first glyph?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Gentium Book Plus link

    Designer SIL International
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 49% (515/1037) of languages using the Latin script
    • 83% (65/78) of languages using the Cyrillic script
    • 33% (2/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Coptic, Greek; Pontic, Greek; Tsakonian)
    First seen 2022-05-19
    Last updated 2022-05-19 (1 year, 6 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Gentium Plus link

    Designer SIL International
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 50% (519/1037) of languages using the Latin script
    • 83% (65/78) of languages using the Cyrillic script
    • 33% (2/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Coptic, Greek; Pontic, Greek; Tsakonian)
    First seen 2022-05-13
    Last updated 2022-05-13 (1 year, 6 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Geo link

    Designer Ben Weiner
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2010-11-30
    Last updated 2023-08-15 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check METADATA.pb font weights are correct.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.style "italic" matches font internals?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Are there unwanted tables?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Geologica link

    Designer Monokrom, Sindre Bremnes, Frode Helland
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu, vietnamese
    Languages
    • 30% (317/1037) of languages using the Latin script
    • 70% (55/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2023-04-12
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Check font names are correct
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Validate METADATA.pb axes tags are defined in gf_axisregistry.
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
  • Full Fontbakery report
  • Georama link

    Designer Production Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 28% (299/1037) of languages using the Latin script
    First seen 2020-07-01
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Geostar link

    Designer Joe Prince
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-08-10
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Does METADATA.pb copyright field contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Geostar Fill link

    Designer Joe Prince
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-08-10
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Does METADATA.pb copyright field contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Germania One link

    Designer John Vargas Beltrán
    Subsets menu, latin, latin-ext
    Languages 10% (111/1037) of languages using the Latin script
    First seen 2012-01-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Gideon Roman link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 25% (261/1037) of languages using the Latin script
    First seen 2021-08-26
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Gidugu link

    Designer Purushoth Kumar Guttula
    Subsets menu, latin, telugu
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2014-12-10
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: Check font names are correct
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check if each glyph has the recommended amount of contours.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Gilda Display link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu
    Languages 26% (273/1037) of languages using the Latin script
    First seen 2012-10-31
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
  • Full Fontbakery report
  • Girassol link

    Designer Liam Spradlin
    Subsets latin, latin-ext, menu
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2019-12-05
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Give You Glory link

    Designer Kimberly Geswein
    Subsets menu, latin
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2011-07-13
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Glass Antiqua link

    Designer Denis Masharov
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-02-22
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Glegoo link

    Designer Eduardo Tunni
    Subsets menu, devanagari, latin, latin-ext
    Languages
    • 24% (257/1037) of languages using the Latin script
    • 10% (8/78) of languages using the Devanagari script (Supports Maithili; Bhojpuri; Eastern Tamang; Dotyali; Magahi; Goan Konkani; Kangri; Awadhi)
    First seen 2012-01-25
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Are there unwanted Apple tables?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Whitespace glyphs have ink?
    • FAIL: Are there unwanted tables?
    • FAIL: Glyph names are all valid?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Gloock link

    Designer Duarte Pinto
    Subsets cyrillic-ext, latin, latin-ext, menu
    Languages 26% (274/1037) of languages using the Latin script
    First seen 2023-01-06
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Gloria Hallelujah link

    Designer Kimberly Geswein
    Subsets menu, latin
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2011-07-27
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Glory link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 28% (297/1037) of languages using the Latin script
    First seen 2021-06-17
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does METADATA.pb copyright field contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Gluten link

    Designer Tyler Finck, ETC
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (333/1037) of languages using the Latin script
    First seen 2021-09-02
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Check variable font instances
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Goblin One link

    Designer Riccardo De Franceschi
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-06-29
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Checking file is named canonically.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Gochi Hand link

    Designer Huerta Tipográfica
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-10-05
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Goldman link

    Designer Jaikishan Patel
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (334/1037) of languages using the Latin script
    First seen 2020-07-22
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Golos Text link

    Designer Alexandra Korolkova, Vitaly Kuzmin
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu
    Languages
    • 27% (285/1037) of languages using the Latin script
    • 76% (60/78) of languages using the Cyrillic script
    First seen 2023-01-06
    Last updated 2023-01-16 (10 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Gorditas link

    Designer Gustavo Dipre
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-03-14
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Font contains unique glyph names?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Gothic A1 link

    Designer HanYang I&C Co
    Subsets korean, cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 52% (549/1037) of languages using the Latin script
    • 79% (62/78) of languages using the Cyrillic script
    • 33% (2/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Coptic, Greek; Pontic, Greek; Tsakonian)
    • 100% (1/1) of languages using the Korean script
    First seen 2018-02-24
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Font contains unique glyph names?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Does full font name begin with the font family name?
    • FAIL: PostScript name follows OpenType specification requirements?
    • FAIL: Name table ID 6 (PostScript name) must be consistent across platforms.
  • Full Fontbakery report
  • Gotu link

    Designer Ek Type
    Subsets devanagari, latin, latin-ext, menu, vietnamese
    Languages
    • 29% (311/1037) of languages using the Latin script
    • 10% (8/78) of languages using the Devanagari script (Supports Maithili; Bhojpuri; Eastern Tamang; Dotyali; Magahi; Goan Konkani; Kangri; Awadhi)
    First seen 2020-01-10
    Last updated 2023-09-19 (2 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • ERROR: URLs on DESCRIPTION file must not display http(s) prefix.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Goudy Bookletter 1911 link

    Designer Barry Schwartz
    Subsets menu, latin
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2011-02-09
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Are there unwanted tables?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Is there a usable "kern" table declared in the font?
  • Full Fontbakery report
  • Gowun Batang link

    Designer Yanghee Ryu
    Subsets korean, latin, latin-ext, menu, vietnamese
    Languages
    • 32% (332/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Korean script
    First seen 2021-06-10
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Gowun Dodum link

    Designer Yanghee Ryu
    Subsets korean, latin, latin-ext, menu, vietnamese
    Languages
    • 32% (332/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Korean script
    First seen 2021-06-10
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Graduate link

    Designer Eduardo Tunni
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-03-14
    Last updated 2023-08-09 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Grand Hotel link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-11-30
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Grandiflora One link

    Designer Haesung Cho, JAMO
    Subsets korean, latin, latin-ext, menu
    Languages
    • 22% (236/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Korean script
    First seen 2023-05-18
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Grandstander link

    Designer Tyler Finck, ETC
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (332/1037) of languages using the Latin script
    First seen 2020-07-24
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Grape Nuts link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (317/1037) of languages using the Latin script
    First seen 2022-02-17
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Gravitas One link

    Designer Riccardo De Franceschi
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-06-29
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Great Vibes link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (311/1037) of languages using the Latin script
    First seen 2012-03-29
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Grechen Fuemen link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2021-09-02
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Grenze link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (306/1037) of languages using the Latin script
    First seen 2018-09-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Grenze Gotisch link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 27% (288/1037) of languages using the Latin script
    First seen 2020-05-18
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Grey Qo link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2021-09-02
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Griffy link

    Designer Neapolitan
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-09-06
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Gruppo link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu
    Languages 26% (274/1037) of languages using the Latin script
    First seen 2010-12-20
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Gudea link

    Designer Agustina Mingote
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Whitespace glyphs have ink?
    • FAIL: Are there unwanted tables?
    • FAIL: Glyph names are all valid?
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
  • Full Fontbakery report
  • Gugi link

    Designer TAE System & Typefaces Co.
    Subsets korean, menu
    Languages 10% (104/1037) of languages using the Latin script
    First seen 2018-02-23
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: Check METADATA.pb includes production subsets.
    • FAIL: Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: PostScript name follows OpenType specification requirements?
    • FAIL: Name table ID 6 (PostScript name) must be consistent across platforms.
  • Full Fontbakery report
  • Gulzar link

    Designer Borna Izadpanah, Fiona Ross, Alice Savoie, Simon Cozens
    Subsets arabic, latin, latin-ext, menu
    Languages
    • 19% (201/1037) of languages using the Latin script
    • 1% (1/81) of languages using the Arabic script (Supports Urdu)
    First seen 2022-05-14
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Gupter link

    Designer Octavio Pardo
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2019-11-13
    Last updated 2022-11-07 (1 year, 14 days ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Gurajada link

    Designer Purushoth Kumar Guttula
    Subsets menu, latin, telugu
    Languages 11% (120/1037) of languages using the Latin script
    First seen 2015-01-08
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Glyph names are all valid?
    • FAIL: Font contains unique glyph names?
    • FAIL: Ensure indic fonts have the Indian Rupee Sign glyph.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Gwendolyn link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2021-11-02
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Habibi link

    Designer Magnus Gaarde
    Subsets menu, latin, latin-ext
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Hachi Maru Pop link

    Designer Nonty
    Subsets cyrillic, japanese, latin, latin-ext, menu
    Languages
    • 10% (107/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2020-12-14
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Hahmlet link

    Designer Hypertype
    Subsets korean, latin, latin-ext, menu, vietnamese
    Languages
    • 31% (328/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Korean script
    First seen 2021-05-13
    Last updated 2023-09-27 (a month ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Halant link

    Designer Indian Type Foundry
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (107/1037) of languages using the Latin script
    • 3% (3/78) of languages using the Devanagari script (Supports Eastern Tamang; Dotyali; Goan Konkani)
    First seen 2014-08-27
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Hammersmith One link

    Designer Nicole Fally
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-06-29
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Hanalei link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-11-26
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Hanalei Fill link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-11-26
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Handjet link

    Designer Rosetta, David Březina
    Subsets arabic, armenian, cyrillic, cyrillic-ext, greek, hebrew, latin, latin-ext, menu, vietnamese
    Languages
    • 30% (317/1037) of languages using the Latin script
    • 70% (55/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    • 57% (4/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic)
    • 50% (1/2) of languages using the Armenian script (Missing Western Armenian, Armenian)
    • 1% (1/81) of languages using the Arabic script (Supports Urdu)
    First seen 2020-09-11
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Handlee link

    Designer Joe Prince
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-13
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Does METADATA.pb copyright field contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Hanken Grotesk link

    Designer Alfredo Marco Pradil, Hanken Design Co.
    Subsets cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages 29% (310/1037) of languages using the Latin script
    First seen 2022-11-16
    Last updated 2022-12-15 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Hanuman link

    Designer Danh Hong
    Subsets khmer, latin, menu
    Languages
    • 10% (104/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Khmer script
    First seen 2010-09-21
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Happy Monkey link

    Designer Brenda Gallo
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-03-14
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Harmattan link

    Designer SIL International
    Subsets arabic, latin, latin-ext, menu
    Languages
    • 10% (107/1037) of languages using the Latin script
    • 14% (12/81) of languages using the Arabic script
    First seen 2020-07-03
    Last updated 2023-04-19 (7 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does METADATA.pb copyright field contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Does the font have any invalid language tags?
  • Full Fontbakery report
  • Headland One link

    Designer Gary Lonergan
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-05-09
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Hedvig Letters Sans link

    Designer Kanon Foundry, Alexander Örn, Tor Weibull
    Subsets latin, latin-ext, math, menu, symbols
    Languages 26% (274/1037) of languages using the Latin script
    First seen 2023-10-24
    Last updated 2023-10-24 (28 days ago)
    • Version Version 1.000; ttfautohint (v1.8.4.7-5d5b) moved to sandbox on 2023-11-10 (12 days ago)
    • Version Version 1.000; ttfautohint (v1.8.4.7-5d5b) moved to dev on 2023-10-26 (26 days ago)
    Latest releases
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Shapes languages in all GF glyphsets.
  • Full Fontbakery report
  • Hedvig Letters Serif link

    Designer Kanon Foundry, Alexander Örn, Tor Weibull
    Subsets latin, latin-ext, math, menu, symbols
    Languages 26% (274/1037) of languages using the Latin script
    First seen 2023-10-24
    Last updated 2023-10-25 (27 days ago)
    • Version Version 1.000 moved to sandbox on 2023-11-10 (12 days ago)
    • Version Version 1.000 moved to dev on 2023-10-26 (26 days ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Shapes languages in all GF glyphsets.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Heebo link

    Designer Oded Ezer
    Subsets hebrew, latin, menu
    Languages
    • 12% (132/1037) of languages using the Latin script
    • 57% (4/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic)
    First seen 2016-06-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Henny Penny link

    Designer Brownfox
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-02-22
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Is there a usable "kern" table declared in the font?
    • FAIL: Does the font have any invalid script tags?
  • Full Fontbakery report
  • Hepta Slab link

    Designer Mike LaGattuta
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (325/1037) of languages using the Latin script
    First seen 2018-09-19
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Hermeneus One link

    Designer Impallari Type
    Subsets menu, latin, latin-ext
    Languages 11% (119/1037) of languages using the Latin script
    First seen 2012-05-01
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Herr Von Muellerhoff link

    Designer Sudtipos
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-30
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Hi Melody link

    Designer YoonDesign Inc
    Subsets korean, latin, menu
    Languages
    • 10% (105/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Korean script
    First seen 2018-02-23
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Ensure files are not too large.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Does full font name begin with the font family name?
  • Full Fontbakery report
  • Hina Mincho link

    Designer Satsuyako
    Subsets cyrillic, japanese, latin, latin-ext, menu, vietnamese
    Languages
    • 30% (319/1037) of languages using the Latin script
    • 11% (9/78) of languages using the Cyrillic script (Supports Moksha; Russian; Karachay-Balkar; Nogai; Crimean Turkish; Abaza; Erzya; Kumyk; Bulgarian)
    First seen 2021-04-14
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Hind link

    Designer Indian Type Foundry
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (112/1037) of languages using the Latin script
    • 5% (4/78) of languages using the Devanagari script (Supports Eastern Tamang; Kangri; Dotyali; Goan Konkani)
    First seen 2014-06-25
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Hind Colombo link

    Designer Indian Type Foundry
    Subsets menu, latin, latin-ext, sinhala
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2016-01-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Checking OS/2 fsSelection value.
  • Full Fontbakery report
  • Hind Guntur link

    Designer Indian Type Foundry
    Subsets latin, latin-ext, menu, telugu
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2016-01-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Hind Jalandhar link

    Designer Indian Type Foundry
    Subsets menu, gurmukhi, latin, latin-ext
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2016-01-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Checking OS/2 fsSelection value.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Hind Kochi link

    Designer Indian Type Foundry
    Subsets menu, latin, latin-ext, malayalam
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Malayalam script
    First seen 2016-01-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Checking OS/2 fsSelection value.
  • Full Fontbakery report
  • Hind Madurai link

    Designer Indian Type Foundry
    Subsets latin, latin-ext, menu, tamil
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Tamil script (Missing Badaga)
    First seen 2016-01-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Hind Mysuru link

    Designer Indian Type Foundry
    Subsets menu, kannada, latin, latin-ext
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2016-01-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Checking OS/2 fsSelection value.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Hind Siliguri link

    Designer Indian Type Foundry
    Subsets bengali, latin, latin-ext, menu
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 23% (4/17) of languages using the Bangla script (Supports Assamese; Bengali; Bishnupriya; Rangpuri)
    First seen 2015-09-09
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Hind Vadodara link

    Designer Indian Type Foundry
    Subsets gujarati, latin, latin-ext, menu
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2015-09-09
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Holtwood One SC link

    Designer Vernon Adams
    Subsets menu, latin
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2011-05-04
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Homenaje link

    Designer Constanza Artigas Preller, Agustina Mingote
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Honk link

    Designer Ek Type
    Subsets latin, latin-ext, math, menu, symbols, vietnamese
    Languages 29% (311/1037) of languages using the Latin script
    First seen 2023-11-15
    Last updated 2023-11-15 (6 days ago)
    • Version Version 1.000 moved to dev on 2023-11-17 (5 days ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Shapes languages in all GF glyphsets.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: Validate defaults on fvar table match registered fallback names in GFAxisRegistry.
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
  • Full Fontbakery report
  • Hubballi link

    Designer Erin McLaughlin
    Subsets kannada, latin, latin-ext, menu
    Languages 23% (240/1037) of languages using the Latin script
    First seen 2021-12-16
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Hurricane link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (307/1037) of languages using the Latin script
    First seen 2021-10-08
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • IBM Plex Mono link

    Designer Mike Abbink, Bold Monday
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 30% (316/1037) of languages using the Latin script
    • 69% (54/78) of languages using the Cyrillic script
    First seen 2018-03-12
    Last updated 2023-01-30 (9 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Fonts have consistent underline thickness?
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • IBM Plex Sans link

    Designer Mike Abbink, Bold Monday
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu, vietnamese
    Languages
    • 30% (320/1037) of languages using the Latin script
    • 69% (54/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2018-03-12
    Last updated 2023-01-30 (9 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Fonts have consistent underline thickness?
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • IBM Plex Sans Arabic link

    Designer Mike Abbink, Bold Monday
    Subsets arabic, cyrillic-ext, latin, latin-ext, menu
    Languages
    • 20% (208/1037) of languages using the Latin script
    • 6% (5/81) of languages using the Arabic script (Supports Sindhi; Central Kurdish; Urdu; Kashmiri; Uyghur)
    First seen 2021-06-17
    Last updated 2023-01-30 (9 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Fonts have consistent underline thickness?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • IBM Plex Sans Condensed link

    Designer Mike Abbink, Bold Monday
    Subsets cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages 30% (320/1037) of languages using the Latin script
    First seen 2018-03-12
    Last updated 2023-01-30 (9 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Fonts have consistent underline thickness?
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • IBM Plex Sans Devanagari link

    Designer Mike Abbink, Bold Monday
    Subsets cyrillic-ext, devanagari, latin, latin-ext, menu
    Languages
    • 20% (208/1037) of languages using the Latin script
    • 6% (5/78) of languages using the Devanagari script (Supports Eastern Tamang; Dotyali; Kangri; Goan Konkani; Awadhi)
    First seen 2021-06-18
    Last updated 2023-01-30 (9 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Fonts have consistent underline thickness?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • IBM Plex Sans Hebrew link

    Designer Mike Abbink, Bold Monday
    Subsets cyrillic-ext, hebrew, latin, latin-ext, menu
    Languages
    • 24% (255/1037) of languages using the Latin script
    • 57% (4/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic)
    First seen 2021-06-18
    Last updated 2023-01-30 (9 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Fonts have consistent underline thickness?
  • Full Fontbakery report
  • IBM Plex Sans JP link

    Designer Mike Abbink, Bold Monday
    Subsets cyrillic, japanese, latin, latin-ext, menu
    Languages
    • 21% (220/1037) of languages using the Latin script
    • 10% (8/78) of languages using the Cyrillic script (Supports Moksha; Russian; Nogai; Crimean Turkish; Abaza; Erzya; Kumyk; Bulgarian)
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2022-09-12
    Last updated 2023-01-30 (9 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Fonts have consistent underline thickness?
  • Full Fontbakery report
  • IBM Plex Sans KR link

    Designer Mike Abbink, Bold Monday
    Subsets korean, latin, latin-ext, menu
    Languages
    • 10% (105/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Korean script
    First seen 2021-06-18
    Last updated 2023-01-30 (9 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Fonts have consistent underline thickness?
  • Full Fontbakery report
  • IBM Plex Sans Thai link

    Designer Mike Abbink, Bold Monday
    Subsets cyrillic-ext, latin, latin-ext, menu, thai
    Languages 11% (121/1037) of languages using the Latin script
    First seen 2021-06-18
    Last updated 2023-01-30 (9 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Fonts have consistent underline thickness?
  • Full Fontbakery report
  • IBM Plex Sans Thai Looped link

    Designer Mike Abbink, Bold Monday
    Subsets cyrillic-ext, latin, latin-ext, menu, thai
    Languages 11% (121/1037) of languages using the Latin script
    First seen 2021-06-18
    Last updated 2023-01-30 (9 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Fonts have consistent underline thickness?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • IBM Plex Serif link

    Designer Mike Abbink, Bold Monday
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 30% (319/1037) of languages using the Latin script
    • 69% (54/78) of languages using the Cyrillic script
    First seen 2018-03-12
    Last updated 2023-01-30 (9 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Fonts have consistent underline thickness?
  • Full Fontbakery report
  • IM Fell DW Pica link

    Designer Igino Marini
    Subsets menu, latin
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2010-05-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb: Copyright notice is the same in all fonts?
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: PostScript name follows OpenType specification requirements?
  • Full Fontbakery report
  • IM Fell DW Pica SC link

    Designer Igino Marini
    Subsets menu, latin
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2010-05-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: PostScript name follows OpenType specification requirements?
  • Full Fontbakery report
  • IM Fell Double Pica link

    Designer Igino Marini
    Subsets latin, latin-ext, menu
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2010-05-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb: Copyright notice is the same in all fonts?
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
    • FAIL: PostScript name follows OpenType specification requirements?
  • Full Fontbakery report
  • IM Fell Double Pica SC link

    Designer Igino Marini
    Subsets menu, latin
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2010-05-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: PostScript name follows OpenType specification requirements?
  • Full Fontbakery report
  • IM Fell English link

    Designer Igino Marini
    Subsets menu, latin
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2010-05-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb: Copyright notice is the same in all fonts?
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: PostScript name follows OpenType specification requirements?
  • Full Fontbakery report
  • IM Fell English SC link

    Designer Igino Marini
    Subsets menu, latin
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2010-05-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: PostScript name follows OpenType specification requirements?
  • Full Fontbakery report
  • IM Fell French Canon link

    Designer Igino Marini
    Subsets menu, latin
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2010-05-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb: Copyright notice is the same in all fonts?
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: PostScript name follows OpenType specification requirements?
  • Full Fontbakery report
  • IM Fell French Canon SC link

    Designer Igino Marini
    Subsets menu, latin
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2010-05-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: PostScript name follows OpenType specification requirements?
  • Full Fontbakery report
  • IM Fell Great Primer link

    Designer Igino Marini
    Subsets menu, latin
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2010-05-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb: Copyright notice is the same in all fonts?
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: PostScript name follows OpenType specification requirements?
  • Full Fontbakery report
  • IM Fell Great Primer SC link

    Designer Igino Marini
    Subsets menu, latin
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2010-05-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: PostScript name follows OpenType specification requirements?
  • Full Fontbakery report
  • Ibarra Real Nova link

    Designer José María Ribagorda, Octavio Pardo
    Subsets latin, latin-ext, menu
    Languages 24% (258/1037) of languages using the Latin script
    First seen 2019-11-04
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Iceberg link

    Designer Cyreal
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-25
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Iceland link

    Designer Cyreal
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-23
    Last updated 2023-08-09 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Imbue link

    Designer Tyler Finck, ETC
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (316/1037) of languages using the Latin script
    First seen 2020-12-02
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
  • Full Fontbakery report
  • Imperial Script link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2021-11-18
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Imprima link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu
    Languages 26% (273/1037) of languages using the Latin script
    First seen 2012-03-14
    Last updated 2023-02-10 (9 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
  • Full Fontbakery report
  • Inclusive Sans link

    Designer Olivia King
    Subsets latin, latin-ext, menu, vietnamese
    Languages 27% (290/1037) of languages using the Latin script
    First seen 2023-08-04
    Last updated 2023-08-04 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Inconsolata link

    Designer Raph Levien
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (339/1037) of languages using the Latin script
    First seen 2010-02-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check variable font instances
    • FAIL: Check variable font instances don't have duplicate names
    • FAIL: Font contains '.notdef' as its first glyph?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking correctness of monospaced metadata.
  • Full Fontbakery report
  • Inder link

    Designer Sorkin Type
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Indie Flower link

    Designer Kimberly Geswein
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (337/1037) of languages using the Latin script
    First seen 2011-03-09
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Ingrid Darling link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (317/1037) of languages using the Latin script
    First seen 2022-03-11
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Inika link

    Designer Constanza Artigas
    Subsets menu, latin, latin-ext
    Languages 10% (111/1037) of languages using the Latin script
    First seen 2012-01-11
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Inknut Antiqua link

    Designer Claus Eggers Sørensen
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 11% (116/1037) of languages using the Latin script
    • 10% (8/78) of languages using the Devanagari script (Supports Maithili; Bhojpuri; Eastern Tamang; Dotyali; Magahi; Goan Konkani; Kangri; Awadhi)
    First seen 2015-05-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Glyph names are all valid?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Fonts have consistent underline thickness?
  • Full Fontbakery report
  • Inria Sans link

    Designer Grégori Vincens, Jérémie Hornus
    Subsets latin, latin-ext, menu
    Languages 10% (111/1037) of languages using the Latin script
    First seen 2019-12-05
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    • (5 years ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Inria Serif link

    Designer Grégori Vincens, Jérémie Hornus
    Subsets latin, latin-ext, menu
    Languages 10% (111/1037) of languages using the Latin script
    First seen 2019-12-05
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    • (5 years ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Inspiration link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (316/1037) of languages using the Latin script
    First seen 2021-11-26
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Instrument Sans link

    Designer Rodrigo Fuenzalida, Jordan Egstad
    Subsets latin, latin-ext, menu
    Languages 25% (268/1037) of languages using the Latin script
    First seen 2023-04-13
    Last updated 2023-04-13 (7 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Instrument Serif link

    Designer Rodrigo Fuenzalida, Jordan Egstad
    Subsets latin, latin-ext, menu
    Languages 25% (268/1037) of languages using the Latin script
    First seen 2023-03-22
    Last updated 2023-05-03 (6 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Inter link

    Designer Rasmus Andersson
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 55% (576/1037) of languages using the Latin script
    • 78% (61/78) of languages using the Cyrillic script
    • 33% (2/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Coptic, Greek; Pontic, Greek; Tsakonian)
    First seen 2020-01-24
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Check correctness of STAT table strings
  • Full Fontbakery report
  • Inter Tight link

    Designer Rasmus Andersson
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 56% (583/1037) of languages using the Latin script
    • 78% (61/78) of languages using the Cyrillic script
    • 33% (2/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Coptic, Greek; Pontic, Greek; Tsakonian)
    First seen 2022-07-22
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Island Moments link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2021-11-18
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Istok Web link

    Designer Andrey V. Panov
    Subsets menu, cyrillic, cyrillic-ext, latin, latin-ext
    Languages
    • 28% (297/1037) of languages using the Latin script
    • 74% (58/78) of languages using the Cyrillic script
    First seen 2011-07-13
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check font names are correct
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
    • FAIL: Check glyphs do not have duplicate components which have the same x,y coordinates.
  • Full Fontbakery report
  • Italiana link

    Designer Santiago Orozco
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-03-14
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Italianno link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 23% (242/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Itim link

    Designer Cadson Demak
    Subsets menu, latin, latin-ext, thai, vietnamese
    Languages 29% (311/1037) of languages using the Latin script
    First seen 2015-07-01
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
  • Full Fontbakery report
  • Jacques Francois link

    Designer Cyreal
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-09-07
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Jacques Francois Shadow link

    Designer Cyreal
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-09-07
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Jaldi link

    Designer Omnibus-Type
    Subsets menu, devanagari, latin, latin-ext
    Languages
    • 28% (300/1037) of languages using the Latin script
    • 10% (8/78) of languages using the Devanagari script (Supports Maithili; Bhojpuri; Eastern Tamang; Dotyali; Magahi; Goan Konkani; Kangri; Awadhi)
    First seen 2015-04-22
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check METADATA.pb font weights are correct.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • JetBrains Mono link

    Designer JetBrains, Philipp Nurullin, Konstantin Bulenkov
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu, vietnamese
    Languages
    • 29% (303/1037) of languages using the Latin script
    • 23% (18/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2020-11-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Jim Nightshade link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-01-04
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Joan link

    Designer Paolo Biagini
    Subsets latin, latin-ext, menu
    Languages 27% (290/1037) of languages using the Latin script
    First seen 2022-04-28
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Jockey One link

    Designer TypeTogether
    Subsets menu, latin, latin-ext
    Languages 11% (116/1037) of languages using the Latin script
    First seen 2011-10-26
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Jolly Lodger link

    Designer Font Diner
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-03-14
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Jomhuria link

    Designer KB Studio
    Subsets latin, latin-ext, menu
    Languages
    • 28% (292/1037) of languages using the Latin script
    • 6% (5/81) of languages using the Arabic script (Supports Sindhi; Central Kurdish; Urdu; Kashmiri; Uyghur)
    First seen 2016-06-20
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Check METADATA.pb includes production subsets.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Name table records must not have trailing spaces.
  • Full Fontbakery report
  • Jomolhari link

    Designer Christopher J. Fynn
    Subsets latin, menu, tibetan
    Languages
    • 16% (170/1037) of languages using the Latin script
    • 16% (1/6) of languages using the Tibetan script (Missing Western Tamang, Tibetan; Dzongkha; Balti, Tibetan; Tibetan; Tshangla)
    First seen 2019-09-10
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Is there a usable "kern" table declared in the font?
    • FAIL: Check glyphs do not have duplicate components which have the same x,y coordinates.
  • Full Fontbakery report
  • Josefin Sans link

    Designer Santiago Orozco
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (329/1037) of languages using the Latin script
    First seen 2010-11-17
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Font contains '.notdef' as its first glyph?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Josefin Slab link

    Designer Santiago Orozco
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2010-11-17
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Does METADATA.pb copyright field contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Jost link

    Designer Owen Earl
    Subsets cyrillic, latin, latin-ext, menu
    Languages
    • 25% (262/1037) of languages using the Latin script
    • 11% (9/78) of languages using the Cyrillic script (Supports Moksha; Russian; Karachay-Balkar; Nogai; Crimean Turkish; Abaza; Erzya; Kumyk; Bulgarian)
    First seen 2020-02-11
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font contains '.notdef' as its first glyph?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Joti One link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu
    Languages 26% (273/1037) of languages using the Latin script
    First seen 2012-10-31
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
  • Full Fontbakery report
  • Jua link

    Designer Woowahan Brothers
    Subsets korean, menu
    Languages
    First seen 2018-02-24
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: Check METADATA.pb includes production subsets.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
  • Full Fontbakery report
  • Judson link

    Designer Daniel Johnson
    Subsets menu, latin, latin-ext, vietnamese
    Languages 58% (610/1037) of languages using the Latin script
    First seen 2011-05-04
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Are there unwanted tables?
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
    • FAIL: Does the font have any invalid script tags?
    • ERROR: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Julee link

    Designer Julián Tunni
    Subsets latin, latin-ext, menu
    Languages 26% (273/1037) of languages using the Latin script
    First seen 2011-09-07
    Last updated 2023-04-06 (7 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
  • Full Fontbakery report
  • Julius Sans One link

    Designer Luciano Vergara
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-10-05
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Junge link

    Designer Cyreal
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-18
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Jura link

    Designer Daniel Johnson, Cyreal
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, kayah-li, latin, latin-ext, menu, vietnamese
    Languages
    • 17% (186/1037) of languages using the Latin script
    • 19% (15/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2011-05-18
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Just Me Again Down Here link

    Designer Kimberly Geswein
    Subsets menu, latin, latin-ext
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2010-12-07
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • K2D link

    Designer Cadson Demak
    Subsets latin, latin-ext, menu, thai, vietnamese
    Languages 32% (341/1037) of languages using the Latin script
    First seen 2018-08-22
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Kablammo link

    Designer Vectro Type Foundry, Travis Kochel, Lizy Gershenzon, Daria Cohen, Ethan Cohen
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 30% (313/1037) of languages using the Latin script
    • 62% (49/78) of languages using the Cyrillic script
    First seen 2023-04-21
    Last updated 2023-04-21 (7 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: Validate METADATA.pb axes tags are defined in gf_axisregistry.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Kadwa link

    Designer Sol Matas
    Subsets menu, devanagari, latin
    Languages
    • 11% (116/1037) of languages using the Latin script
    • 10% (8/78) of languages using the Devanagari script (Supports Maithili; Bhojpuri; Eastern Tamang; Dotyali; Magahi; Goan Konkani; Kangri; Awadhi)
    First seen 2015-06-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Glyph names are all valid?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Kaisei Decol link

    Designer Font-Kai
    Subsets cyrillic, japanese, latin, latin-ext, menu
    Languages
    • 12% (128/1037) of languages using the Latin script
    • 15% (12/78) of languages using the Cyrillic script
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2021-05-21
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Kaisei HarunoUmi link

    Designer Font-Kai
    Subsets cyrillic, japanese, latin, latin-ext, menu
    Languages
    • 12% (128/1037) of languages using the Latin script
    • 15% (12/78) of languages using the Cyrillic script
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2021-05-21
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Kaisei Opti link

    Designer Font-Kai
    Subsets cyrillic, japanese, latin, latin-ext, menu
    Languages
    • 12% (128/1037) of languages using the Latin script
    • 15% (12/78) of languages using the Cyrillic script
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2021-05-21
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Kaisei Tokumin link

    Designer Font-Kai
    Subsets cyrillic, japanese, latin, latin-ext, menu
    Languages
    • 12% (128/1037) of languages using the Latin script
    • 15% (12/78) of languages using the Cyrillic script
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2021-05-21
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
  • Full Fontbakery report
  • Kalam link

    Designer Indian Type Foundry
    Subsets menu, devanagari, latin, latin-ext
    Languages
    • 10% (112/1037) of languages using the Latin script
    • 5% (4/78) of languages using the Devanagari script (Supports Eastern Tamang; Kangri; Dotyali; Goan Konkani)
    First seen 2014-10-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Kalnia link

    Designer Frida Medrano
    Subsets latin, latin-ext, math, menu
    Languages 27% (282/1037) of languages using the Latin script
    First seen 2023-10-19
    Last updated 2023-10-19 (a month ago)
    • Version Version 1.105 moved to sandbox on 2023-11-10 (12 days ago)
    • Version Version 1.105 moved to dev on 2023-10-26 (26 days ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Shapes languages in all GF glyphsets.
  • Full Fontbakery report
  • Kameron link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu
    Languages 26% (274/1037) of languages using the Latin script
    First seen 2011-06-08
    Last updated 2023-09-12 (2 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Check METADATA.pb includes production subsets.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Description strings in the name table must not contain copyright info.
    • FAIL: Is there a usable "kern" table declared in the font?
  • Full Fontbakery report
  • Kanit link

    Designer Cadson Demak
    Subsets latin, latin-ext, menu, thai, vietnamese
    Languages 29% (309/1037) of languages using the Latin script
    First seen 2015-12-07
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Kantumruy Pro link

    Designer Tep Sovichet, Wei Huang
    Subsets khmer, latin, latin-ext, menu
    Languages
    • 21% (218/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Khmer script
    First seen 2022-05-12
    Last updated 2022-05-18 (1 year, 6 months ago)
    Latest releases
    • v1.002 (1 year, 6 months ago)
    • v1.001 (1 year, 6 months ago)
    • v1.000 (1 year, 6 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Kapakana link

    Designer Kousuke Nagai
    Subsets japanese, latin, latin-ext, menu
    Languages
    • Defined language in metadata: ja_Kana
    • Defined language in metadata: ja_Hira
    • 10% (107/1037) of languages using the Latin script
    First seen 2020-12-21
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check font follows the Google Fonts CJK vertical metric schema
    • FAIL: Check samples can be rendered.
    • FAIL: The variable font 'wght' (Weight) axis coordinate must be 700 on the 'Bold' instance.
  • Full Fontbakery report
  • Karantina link

    Designer Rony Koch
    Subsets hebrew, latin, latin-ext, menu
    Languages
    • 10% (107/1037) of languages using the Latin script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2021-03-12
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Karla link

    Designer Jonny Pinhorn
    Subsets latin, latin-ext, menu
    Languages 27% (285/1037) of languages using the Latin script
    First seen 2012-03-14
    Last updated 2023-09-01 (2 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Karla Tamil Inclined link

    Designer Jonathan Pinhorn
    Subsets tamil
    Languages 50% (1/2) of languages using the Tamil script (Missing Badaga)
    First seen 2012-09-29
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Font styles are named canonically?
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check font can render its own name.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure indic fonts have the Indian Rupee Sign glyph.
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Check if OS/2 fsSelection matches head macStyle bold and italic bits.
    • FAIL: Checking OS/2 fsSelection value.
    • FAIL: Is there a usable "kern" table declared in the font?
  • Full Fontbakery report
  • Karla Tamil Upright link

    Designer Jonathan Pinhorn
    Subsets tamil
    Languages 50% (1/2) of languages using the Tamil script (Missing Badaga)
    First seen 2012-09-29
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check font can render its own name.
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure indic fonts have the Indian Rupee Sign glyph.
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Is there a usable "kern" table declared in the font?
  • Full Fontbakery report
  • Karma link

    Designer Indian Type Foundry
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (113/1037) of languages using the Latin script
    • 3% (3/78) of languages using the Devanagari script (Supports Eastern Tamang; Dotyali; Goan Konkani)
    First seen 2014-06-25
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Katibeh link

    Designer KB Studio
    Subsets arabic, latin, latin-ext, menu
    Languages
    • 25% (269/1037) of languages using the Latin script
    • 6% (5/81) of languages using the Arabic script (Supports Sindhi; Central Kurdish; Urdu; Kashmiri; Uyghur)
    First seen 2016-06-20
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Kaushan Script link

    Designer Impallari Type
    Subsets menu, latin, latin-ext
    Languages 11% (119/1037) of languages using the Latin script
    First seen 2012-01-25
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Is there a usable "kern" table declared in the font?
  • Full Fontbakery report
  • Kavivanar link

    Designer Tharique Azeez
    Subsets latin, latin-ext, menu, tamil
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Tamil script (Missing Badaga)
    First seen 2016-06-20
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Ensure indic fonts have the Indian Rupee Sign glyph.
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Check glyphs do not have duplicate components which have the same x,y coordinates.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Kavoon link

    Designer Viktoriya Grabowska
    Subsets menu, latin, latin-ext
    Languages 23% (239/1037) of languages using the Latin script
    First seen 2013-01-23
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Kay Pho Du link

    Designer SIL International
    Subsets kayah-li, latin, latin-ext, menu
    Languages 18% (196/1037) of languages using the Latin script
    First seen 2023-10-04
    Last updated 2023-10-04 (a month ago)
    • Version Version 3.000 moved to production on 2023-10-26 (26 days ago)
    • Version Version 3.000 moved to sandbox on 2023-10-14 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Kdam Thmor Pro link

    Designer Tep Sovichet, Hak Longdey
    Subsets khmer, latin, latin-ext, menu
    Languages
    • 10% (107/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Khmer script
    First seen 2022-05-11
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    • v1.003 (1 year, 6 months ago)
    • v1.002 (1 year, 6 months ago)
    • v1.000 (1 year, 6 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Keania One link

    Designer Julia Petretta
    Subsets menu, latin, latin-ext
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2012-10-31
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Kelly Slab link

    Designer Denis Masharov
    Subsets menu, cyrillic, latin, latin-ext
    Languages
    • 10% (113/1037) of languages using the Latin script
    • 1% (1/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic))
    First seen 2011-07-27
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Kenia link

    Designer Julia Petretta
    Subsets menu, latin
    Languages 10% (106/1037) of languages using the Latin script
    First seen 2010-12-15
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Glyph names are all valid?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Khand link

    Designer Indian Type Foundry
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 3% (3/78) of languages using the Devanagari script (Supports Eastern Tamang; Dotyali; Goan Konkani)
    First seen 2014-07-14
    Last updated 2022-11-09 (1 year, 12 days ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Khmer link

    Designer Danh Hong
    Subsets menu, khmer
    Languages 100% (1/1) of languages using the Khmer script
    First seen 2011-03-02
    Last updated 2023-08-09 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Checking OS/2 fsType does not impose restrictions.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Are there unwanted Apple tables?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check font can render its own name.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Glyph names are all valid?
    • FAIL: Font contains unique glyph names?
    • FAIL: Check if OS/2 xAvgCharWidth is correct.
  • Full Fontbakery report
  • Khula link

    Designer Erin McLaughlin
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (106/1037) of languages using the Latin script
    • 8% (7/78) of languages using the Devanagari script (Supports Bhojpuri; Eastern Tamang; Dotyali; Magahi; Goan Konkani; Kangri; Awadhi)
    First seen 2015-01-28
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Check code page character ranges
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Kings link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (319/1037) of languages using the Latin script
    First seen 2021-10-22
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Kirang Haerang link

    Designer Woowahan Brothers
    Subsets korean, latin, menu
    Languages
    First seen 2018-02-24
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check font can render its own name.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Font contains unique glyph names?
  • Full Fontbakery report
  • Kite One link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu
    Languages 26% (273/1037) of languages using the Latin script
    First seen 2012-10-26
    Last updated 2023-02-17 (9 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
  • Full Fontbakery report
  • Kiwi Maru link

    Designer Hiroki-Chan
    Subsets cyrillic, japanese, latin, latin-ext, menu
    Languages
    • 21% (220/1037) of languages using the Latin script
    • 10% (8/78) of languages using the Cyrillic script (Supports Moksha; Russian; Nogai; Crimean Turkish; Abaza; Erzya; Kumyk; Bulgarian)
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2020-12-14
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
  • Full Fontbakery report
  • Klee One link

    Designer Fontworks Inc.
    Subsets cyrillic, greek-ext, japanese, latin, latin-ext, menu
    Languages
    • 21% (228/1037) of languages using the Latin script
    • 10% (8/78) of languages using the Cyrillic script (Supports Moksha; Russian; Nogai; Crimean Turkish; Abaza; Erzya; Kumyk; Bulgarian)
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2021-06-08
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Knewave link

    Designer Tyler Finck
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • KoHo link

    Designer Cadson Demak
    Subsets latin, latin-ext, menu, thai, vietnamese
    Languages 32% (341/1037) of languages using the Latin script
    First seen 2018-08-22
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Kodchasan link

    Designer Cadson Demak
    Subsets latin, latin-ext, menu, thai, vietnamese
    Languages 32% (341/1037) of languages using the Latin script
    First seen 2018-08-22
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Koh Santepheap link

    Designer Danh Hong
    Subsets khmer, latin, menu
    Languages
    • 10% (104/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Khmer script
    First seen 2021-06-10
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
  • Full Fontbakery report
  • Kolker Brush link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (311/1037) of languages using the Latin script
    First seen 2021-11-26
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Konkhmer Sleokchher link

    Designer Suon May Sophanith
    Subsets khmer, latin, latin-ext, menu
    Languages
    • 25% (262/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Khmer script
    First seen 2023-02-02
    Last updated 2023-04-06 (7 months ago)
    Latest releases

    Kotta One link

    Designer Ania Kruk
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-25
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Koulen link

    Designer Danh Hong
    Subsets khmer, latin, menu
    Languages
    • 10% (104/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Khmer script
    First seen 2011-03-02
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Kreon link

    Designer Julia Petretta
    Subsets latin, latin-ext, menu
    Languages 26% (271/1037) of languages using the Latin script
    First seen 2011-02-02
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Kristi link

    Designer Birgit Pulk
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2010-12-20
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Font styles are named canonically?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Krona One link

    Designer Yvonne Schüttler
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-02-22
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Krub link

    Designer Cadson Demak
    Subsets latin, latin-ext, menu, thai, vietnamese
    Languages 32% (335/1037) of languages using the Latin script
    First seen 2018-08-24
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Kufam link

    Designer Original Type, Wael Morcos, Artur Schmal
    Subsets arabic, latin, latin-ext, menu, vietnamese
    Languages
    • 31% (326/1037) of languages using the Latin script
    • 6% (5/81) of languages using the Arabic script (Supports Sindhi; Central Kurdish; Urdu; Kashmiri; Uyghur)
    First seen 2020-07-14
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check variable font instances
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Kulim Park link

    Designer Dale Sattler
    Subsets latin, latin-ext, menu
    Languages 25% (267/1037) of languages using the Latin script
    First seen 2019-09-25
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check font has a license.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Kumar One link

    Designer Indian Type Foundry
    Subsets gujarati, latin, latin-ext, menu
    Languages 15% (156/1037) of languages using the Latin script
    First seen 2016-06-20
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Ensure that the font can be rasterized by FreeType.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Kumbh Sans link

    Designer Saurabh Sharma
    Subsets latin, latin-ext, math, menu
    Languages 25% (262/1037) of languages using the Latin script
    First seen 2020-07-23
    Last updated 2023-09-28 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check for METADATA subsets with zero support.
    • FAIL: Validate defaults on fvar table match registered fallback names in GFAxisRegistry.
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
  • Full Fontbakery report
  • Kurale link

    Designer Eduardo Tunni
    Subsets cyrillic, cyrillic-ext, devanagari, latin, latin-ext, menu
    Languages
    • 25% (267/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 10% (8/78) of languages using the Devanagari script (Supports Maithili; Bhojpuri; Eastern Tamang; Dotyali; Magahi; Goan Konkani; Kangri; Awadhi)
    First seen 2015-05-14
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • La Belle Aurore link

    Designer Kimberly Geswein
    Subsets menu, latin
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2011-06-08
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Labrada link

    Designer Mercedes Jáuregui, Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (325/1037) of languages using the Latin script
    First seen 2023-01-19
    Last updated 2023-01-19 (10 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Lacquer link

    Designer Niki Polyocan, Eli Block
    Subsets latin, menu
    Languages 20% (212/1037) of languages using the Latin script
    First seen 2019-07-04
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Laila link

    Designer Indian Type Foundry
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (107/1037) of languages using the Latin script
    • 3% (3/78) of languages using the Devanagari script (Supports Eastern Tamang; Dotyali; Goan Konkani)
    First seen 2014-08-27
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Lakki Reddy link

    Designer Appaji Ambarisha Darbha
    Subsets menu, latin, telugu
    Languages 10% (106/1037) of languages using the Latin script
    First seen 2015-01-12
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Lalezar link

    Designer Borna Izadpanah
    Subsets arabic, latin, latin-ext, menu, vietnamese
    Languages
    • 28% (297/1037) of languages using the Latin script
    • 1% (1/81) of languages using the Arabic script (Supports Urdu)
    First seen 2017-02-28
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
  • Full Fontbakery report
  • Lancelot link

    Designer Marion Kadi
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-02
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Description strings in the name table must not contain copyright info.
    • FAIL: Is there a usable "kern" table declared in the font?
  • Full Fontbakery report
  • Langar link

    Designer Typeland, Alessia Mazzarella
    Subsets gurmukhi, latin, latin-ext, menu
    Languages 29% (303/1037) of languages using the Latin script
    First seen 2020-11-26
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Lateef link

    Designer SIL International
    Subsets arabic, latin, latin-ext, menu
    Languages
    • 10% (107/1037) of languages using the Latin script
    • 14% (12/81) of languages using the Arabic script
    First seen 2012-01-18
    Last updated 2023-08-30 (2 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Does the font have any invalid language tags?
  • Full Fontbakery report
  • Lato link

    Designer Łukasz Dziedzic
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 62% (652/1037) of languages using the Latin script
    • 82% (64/78) of languages using the Cyrillic script
    • 33% (2/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Coptic, Greek; Pontic, Greek; Tsakonian)
    First seen 2010-12-15
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Fonts have consistent underline thickness?
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Lavishly Yours link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2022-03-11
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • League Gothic link

    Designer Tyler Finck, Caroline Hadilaksono, Micah Rich
    Subsets latin, latin-ext, menu, vietnamese
    Languages 27% (288/1037) of languages using the Latin script
    First seen 2021-12-09
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • League Script link

    Designer Haley Fiege
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-03-09
    Last updated 2023-08-09 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: Check font names are correct
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Is there a usable "kern" table declared in the font?
  • Full Fontbakery report
  • League Spartan link

    Designer Matt Bailey, Tyler Finck
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (332/1037) of languages using the Latin script
    First seen 2021-12-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Leckerli One link

    Designer Gesine Todt
    Subsets menu, latin
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2011-07-20
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Ledger link

    Designer Denis Masharov
    Subsets menu, cyrillic, latin, latin-ext
    Languages
    • 10% (110/1037) of languages using the Latin script
    • 1% (1/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic))
    First seen 2012-02-22
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Lekton link

    Designer ISIA Urbino
    Subsets menu, latin, latin-ext
    Languages 3% (34/1037) of languages using the Latin script
    First seen 2010-12-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Glyph names are all valid?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Checking correctness of monospaced metadata.
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
    • FAIL: Does the font have any invalid language tags?
  • Full Fontbakery report
  • Lemon link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu
    Languages 26% (273/1037) of languages using the Latin script
    First seen 2011-11-30
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
  • Full Fontbakery report
  • Lemonada link

    Designer Mohamed Gaber, Eduardo Tunni
    Subsets arabic, latin, latin-ext, menu, vietnamese
    Languages
    • 27% (285/1037) of languages using the Latin script
    • 1% (1/81) of languages using the Arabic script (Supports Urdu)
    First seen 2016-06-20
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Lexend link

    Designer Bonnie Shaver-Troup, Thomas Jockin, Santiago Orozco, Héctor Gómez, Superunion
    Subsets latin, latin-ext, menu, vietnamese
    Languages 33% (344/1037) of languages using the Latin script
    First seen 2021-03-09
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Lexend Deca link

    Designer Bonnie Shaver-Troup, Thomas Jockin, Santiago Orozco, Héctor Gómez, Superunion
    Subsets latin, latin-ext, menu, vietnamese
    Languages 33% (344/1037) of languages using the Latin script
    First seen 2019-08-01
    Last updated 2022-12-23 (10 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Lexend Exa link

    Designer Bonnie Shaver-Troup, Thomas Jockin, Santiago Orozco, Héctor Gómez, Superunion
    Subsets latin, latin-ext, menu, vietnamese
    Languages 33% (344/1037) of languages using the Latin script
    First seen 2019-08-01
    Last updated 2022-12-23 (10 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Lexend Giga link

    Designer Bonnie Shaver-Troup, Thomas Jockin, Santiago Orozco, Héctor Gómez, Superunion
    Subsets latin, latin-ext, menu, vietnamese
    Languages 33% (344/1037) of languages using the Latin script
    First seen 2019-08-01
    Last updated 2022-12-23 (10 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Lexend Mega link

    Designer Bonnie Shaver-Troup, Thomas Jockin, Santiago Orozco, Héctor Gómez, Superunion
    Subsets latin, latin-ext, menu, vietnamese
    Languages 33% (344/1037) of languages using the Latin script
    First seen 2019-08-01
    Last updated 2022-12-23 (10 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Lexend Peta link

    Designer Bonnie Shaver-Troup, Thomas Jockin, Santiago Orozco, Héctor Gómez, Superunion
    Subsets latin, latin-ext, menu, vietnamese
    Languages 33% (344/1037) of languages using the Latin script
    First seen 2019-08-01
    Last updated 2022-12-23 (10 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Lexend Tera link

    Designer Bonnie Shaver-Troup, Thomas Jockin, Santiago Orozco, Héctor Gómez, Superunion
    Subsets latin, latin-ext, menu, vietnamese
    Languages 33% (344/1037) of languages using the Latin script
    First seen 2019-08-01
    Last updated 2022-12-23 (10 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Lexend Zetta link

    Designer Bonnie Shaver-Troup, Thomas Jockin, Santiago Orozco, Héctor Gómez, Superunion
    Subsets latin, latin-ext, menu, vietnamese
    Languages 33% (344/1037) of languages using the Latin script
    First seen 2019-08-01
    Last updated 2022-12-23 (10 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Libre Barcode 128 link

    Designer Lasse Fister
    Subsets latin, menu
    Languages 10% (104/1037) of languages using the Latin script
    First seen 2017-07-31
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Libre Barcode 128 Text link

    Designer Lasse Fister
    Subsets latin, menu
    Languages 10% (104/1037) of languages using the Latin script
    First seen 2017-07-31
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Libre Barcode 39 link

    Designer Lasse Fister
    Subsets latin, menu
    Languages 9% (102/1037) of languages using the Latin script
    First seen 2017-07-31
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Libre Barcode 39 Extended link

    Designer Lasse Fister
    Subsets latin, menu
    Languages 10% (104/1037) of languages using the Latin script
    First seen 2017-08-21
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Libre Barcode 39 Extended Text link

    Designer Lasse Fister
    Subsets latin, menu
    Languages 10% (104/1037) of languages using the Latin script
    First seen 2017-08-21
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Libre Barcode 39 Text link

    Designer Lasse Fister
    Subsets latin, menu
    Languages 9% (102/1037) of languages using the Latin script
    First seen 2017-07-31
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Libre Barcode EAN13 Text link

    Designer Lasse Fister
    Subsets latin, menu
    Languages
    First seen 2020-10-26
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Libre Baskerville link

    Designer Impallari Type
    Subsets menu, latin, latin-ext
    Languages 11% (119/1037) of languages using the Latin script
    First seen 2012-11-30
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Libre Bodoni link

    Designer Pablo Impallari, Rodrigo Fuenzalida
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (319/1037) of languages using the Latin script
    First seen 2022-04-13
    Last updated 2023-02-08 (9 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Libre Caslon Display link

    Designer Impallari Type
    Subsets latin, latin-ext, menu
    Languages 11% (119/1037) of languages using the Latin script
    First seen 2017-11-30
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check glyphs do not have duplicate components which have the same x,y coordinates.
  • Full Fontbakery report
  • Libre Caslon Text link

    Designer Pablo Impallari
    Subsets latin, latin-ext, menu
    Languages 11% (119/1037) of languages using the Latin script
    First seen 2020-06-10
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check name ID 25 to end with "Italic" for Italic VFs.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
  • Full Fontbakery report
  • Libre Franklin link

    Designer Impallari Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (302/1037) of languages using the Latin script
    First seen 2016-06-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Licorice link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2021-11-18
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Life Savers link

    Designer Impallari Type
    Subsets latin, latin-ext, menu
    Languages 11% (119/1037) of languages using the Latin script
    First seen 2012-08-13
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb: Copyright notice is the same in all fonts?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Lilita One link

    Designer Juan Montoreano
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-11
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Lily Script One link

    Designer Julia Petretta
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2013-06-05
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Limelight link

    Designer Nicole Fally, Sorkin Type
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-05-25
    Last updated 2023-08-15 (3 months ago)
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Linden Hill link

    Designer Barry Schwartz
    Subsets menu, latin, latin-ext
    Languages 24% (255/1037) of languages using the Latin script
    First seen 2011-10-19
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Linefont link

    Designer Dmitry Ivanov
    Subsets menu
    Languages 26% (276/1037) of languages using the Latin script
    First seen 2023-09-27
    Last updated 2023-11-20 (a day ago)
    • Version Version 3.002;gftools[0.9.33] moved to production on 2023-10-26 (26 days ago)
    • Version Version 3.002;gftools[0.9.33] moved to sandbox on 2023-10-14 (a month ago)
    • Version Version 3.002;gftools[0.9.33] moved to dev on 2023-10-12 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Lisu Bosa link

    Designer SIL International
    Subsets latin, latin-ext, lisu, menu
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2023-07-06
    Last updated 2023-07-06 (4 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Literata link

    Designer TypeTogether
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 31% (322/1037) of languages using the Latin script
    • 37% (29/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2018-12-06
    Last updated 2023-05-19 (6 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check font names are correct
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Liu Jian Mao Cao link

    Designer Liu Zhengjiang, Kimberly Geswein, ZhongQi
    Subsets chinese-simplified, latin, menu
    Languages
    • 10% (105/1037) of languages using the Latin script
    • 10% (1/10) of languages using the Simplified Han script (Missing Wu Chinese; Zhuang, Simplified Han; Chinese, Jinyu; Min Nan Chinese; Literary Chinese; Xiang Chinese; Gan Chinese; Cantonese (Simplified); Hakka Chinese)
    First seen 2019-03-18
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Livvic link

    Designer LV=, Jacques Le Bailly
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (340/1037) of languages using the Latin script
    First seen 2019-06-21
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Lobster link

    Designer Impallari Type
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 30% (312/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    First seen 2010-05-17
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Lobster Two link

    Designer Impallari Type
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-06-21
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
    • FAIL: Description strings in the name table must not contain copyright info.
    • FAIL: Is there a usable "kern" table declared in the font?
  • Full Fontbakery report
  • Lohit Bengali link

    Designer Multiple Designers
    Subsets bengali
    Languages 23% (4/17) of languages using the Bangla script (Supports Assamese; Bengali; Bishnupriya; Rangpuri)
    First seen 2012-05-09
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Font designer field in METADATA.pb must not contain 'Multiple designers'.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check font can render its own name.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Glyph names are all valid?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Check if OS/2 xAvgCharWidth is correct.
  • Full Fontbakery report
  • Lohit Tamil link

    Designer Multiple Designers
    Subsets menu, tamil
    Languages 50% (1/2) of languages using the Tamil script (Missing Badaga)
    First seen 2011-12-12
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Font designer field in METADATA.pb must not contain 'Multiple designers'.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check font can render its own name.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Check if OS/2 xAvgCharWidth is correct.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Londrina Outline link

    Designer Marcelo Magalhães
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-03-14
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Londrina Shadow link

    Designer Marcelo Magalhães
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-03-14
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Londrina Sketch link

    Designer Marcelo Magalhães
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-03-14
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Londrina Solid link

    Designer Marcelo Magalhães
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-03-14
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Long Cang link

    Designer Chen Xiaomin
    Subsets chinese-simplified, latin, menu
    Languages
    • 10% (105/1037) of languages using the Latin script
    • 10% (1/10) of languages using the Simplified Han script (Missing Wu Chinese; Zhuang, Simplified Han; Chinese, Jinyu; Min Nan Chinese; Literary Chinese; Xiang Chinese; Gan Chinese; Cantonese (Simplified); Hakka Chinese)
    First seen 2019-03-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Does METADATA.pb copyright field contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Lora link

    Designer Cyreal
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 29% (310/1037) of languages using the Latin script
    • 82% (64/78) of languages using the Cyrillic script
    First seen 2011-07-06
    Last updated 2022-07-28 (1 year, 3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Love Light link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2021-12-02
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Love Ya Like A Sister link

    Designer Kimberly Geswein
    Subsets menu, latin
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2011-07-06
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Loved by the King link

    Designer Kimberly Geswein
    Subsets menu, latin
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2011-07-06
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Lovers Quarrel link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 27% (284/1037) of languages using the Latin script
    First seen 2012-03-29
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Lugrasimo link

    Designer The DocRepair Project, Astigmatic
    Subsets latin, latin-ext, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2023-04-13
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
  • Full Fontbakery report
  • Lumanosimo link

    Designer The DocRepair Project, Eduardo Tunni
    Subsets latin, latin-ext, menu
    Languages 21% (227/1037) of languages using the Latin script
    First seen 2023-04-13
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
  • Full Fontbakery report
  • Lunasima link

    Designer The DocRepair Project, Google
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, hebrew, latin, latin-ext, menu, vietnamese
    Languages
    • 59% (615/1037) of languages using the Latin script
    • 64% (50/78) of languages using the Cyrillic script
    • 57% (4/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic)
    First seen 2023-06-15
    Last updated 2023-06-15 (5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
  • Full Fontbakery report
  • Lusitana link

    Designer Ana Paula Megda
    Subsets menu, latin, latin-ext
    Languages 10% (106/1037) of languages using the Latin script
    First seen 2012-01-11
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check for METADATA subsets with zero support.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Lustria link

    Designer MADType
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Luxurious Roman link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (319/1037) of languages using the Latin script
    First seen 2021-11-18
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Luxurious Script link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2021-11-02
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • M PLUS 1 link

    Designer Coji Morishita
    Subsets japanese, latin, latin-ext, menu, vietnamese
    Languages 29% (308/1037) of languages using the Latin script
    First seen 2021-08-26
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • M PLUS 1 Code link

    Designer Coji Morishita
    Subsets japanese, latin, latin-ext, menu, vietnamese
    Languages 29% (308/1037) of languages using the Latin script
    First seen 2021-09-22
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check font follows the Google Fonts CJK vertical metric schema
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking correctness of monospaced metadata.
  • Full Fontbakery report
  • M PLUS 1p link

    Designer Coji Morishita, M+ Fonts Project
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, hebrew, japanese, latin, latin-ext, menu, vietnamese
    Languages
    • 56% (590/1037) of languages using the Latin script
    • 80% (63/78) of languages using the Cyrillic script
    • 33% (2/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Coptic, Greek; Pontic, Greek; Tsakonian)
    • 57% (4/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic)
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2017-06-12
    Last updated 2022-07-29 (1 year, 3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check font follows the Google Fonts CJK vertical metric schema
    • FAIL: Font contains '.notdef' as its first glyph?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • M PLUS 2 link

    Designer Coji Morishita
    Subsets japanese, latin, latin-ext, menu, vietnamese
    Languages 29% (308/1037) of languages using the Latin script
    First seen 2021-08-26
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • M PLUS Code Latin link

    Designer Coji Morishita
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (307/1037) of languages using the Latin script
    First seen 2021-09-22
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Ma Shan Zheng link

    Designer Ma ShanZheng
    Subsets chinese-simplified, latin, menu
    Languages
    • 10% (105/1037) of languages using the Latin script
    • 10% (1/10) of languages using the Simplified Han script (Missing Wu Chinese; Zhuang, Simplified Han; Chinese, Jinyu; Min Nan Chinese; Literary Chinese; Xiang Chinese; Gan Chinese; Cantonese (Simplified); Hakka Chinese)
    First seen 2019-03-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Does METADATA.pb copyright field contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Macondo link

    Designer John Vargas Beltrán
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-18
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Macondo Swash Caps link

    Designer John Vargas Beltrán
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-18
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Mada link

    Designer Khaled Hosny, Paul D. Hunt
    Subsets arabic, latin, latin-ext, menu
    Languages
    • 30% (318/1037) of languages using the Latin script
    • 14% (12/81) of languages using the Arabic script
    First seen 2017-05-08
    Last updated 2023-04-26 (6 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Ensure METADATA.pb does not use escaped strings.
  • Full Fontbakery report
  • Magra link

    Designer FontFuror
    Subsets menu, latin, latin-ext
    Languages 10% (112/1037) of languages using the Latin script
    First seen 2012-01-11
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check METADATA.pb font weights are correct.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Maitree link

    Designer Cadson Demak
    Subsets latin, latin-ext, menu, thai, vietnamese
    Languages 29% (310/1037) of languages using the Latin script
    First seen 2016-06-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
  • Full Fontbakery report
  • Major Mono Display link

    Designer Emre Parlak
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (317/1037) of languages using the Latin script
    First seen 2018-12-05
    Last updated 2023-08-03 (3 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Checking correctness of monospaced metadata.
  • Full Fontbakery report
  • Mako link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu
    Languages 26% (274/1037) of languages using the Latin script
    First seen 2011-05-11
    Last updated 2023-07-27 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Mali link

    Designer Cadson Demak
    Subsets latin, latin-ext, menu, thai, vietnamese
    Languages 32% (341/1037) of languages using the Latin script
    First seen 2018-08-22
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Mallanna link

    Designer Purushoth Kumar Guttula
    Subsets menu, latin, telugu
    Languages 10% (105/1037) of languages using the Latin script
    First seen 2014-12-10
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: Check font names are correct
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
    • FAIL: Glyph names are all valid?
    • FAIL: Font contains unique glyph names?
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Mandali link

    Designer Purushoth Kumar Guttula
    Subsets menu, latin, telugu
    Languages 10% (105/1037) of languages using the Latin script
    First seen 2014-12-10
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: Check font names are correct
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Glyph names are all valid?
    • FAIL: Font contains unique glyph names?
  • Full Fontbakery report
  • Manjari link

    Designer Santhosh Thottingal
    Subsets latin, latin-ext, malayalam, menu
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Malayalam script
    First seen 2018-11-21
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Each font in a family must have the same set of vertical metrics values.
  • Full Fontbakery report
  • Manrope link

    Designer Mikhail Sharanda
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu, vietnamese
    Languages
    • 10% (113/1037) of languages using the Latin script
    • 1% (1/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic))
    First seen 2019-10-03
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Mansalva link

    Designer Carolina Short
    Subsets greek, latin, latin-ext, menu, vietnamese
    Languages
    • 31% (325/1037) of languages using the Latin script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2019-08-29
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Manuale link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (324/1037) of languages using the Latin script
    First seen 2016-12-03
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Marcellus link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-05-09
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Marcellus SC link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-05-09
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Marck Script link

    Designer Denis Masharov
    Subsets menu, cyrillic, latin, latin-ext
    Languages
    • 10% (110/1037) of languages using the Latin script
    • 1% (1/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic))
    First seen 2011-10-12
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Margarine link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-11-16
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Marhey link

    Designer Nur Syamsi, Bustanul Arifin
    Subsets arabic, latin, latin-ext, menu
    Languages
    • 25% (267/1037) of languages using the Latin script
    • 2% (2/81) of languages using the Arabic script (Supports Central Kurdish; Urdu)
    First seen 2022-10-07
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
  • Full Fontbakery report
  • Markazi Text link

    Designer Borna Izadpanah, Florian Runge, Fiona Ross
    Subsets arabic, latin, latin-ext, menu, vietnamese
    Languages
    • 31% (326/1037) of languages using the Latin script
    • 1% (1/81) of languages using the Arabic script (Supports Urdu)
    First seen 2018-06-06
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Marko One link

    Designer Cyreal
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-13
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Marmelad link

    Designer Cyreal, Manvel Shmavonyan
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 32% (336/1037) of languages using the Latin script
    • 70% (55/78) of languages using the Cyrillic script
    First seen 2011-12-07
    Last updated 2022-11-24 (11 months ago)
    Latest releases
    • v1.100 (1 year, 10 months ago)
    Recent Pull Requests
    Recent Commits

    Martel link

    Designer Dan Reynolds
    Subsets menu, devanagari, latin, latin-ext
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 5% (4/78) of languages using the Devanagari script (Supports Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2015-04-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Check METADATA.pb font weights are correct.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Martel Sans link

    Designer Dan Reynolds, Mathieu Réguer
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 5% (4/78) of languages using the Devanagari script (Supports Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2015-03-04
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Martian Mono link

    Designer Roman Shamin, Evil Martians
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu
    Languages
    • 30% (314/1037) of languages using the Latin script
    • 19% (15/78) of languages using the Cyrillic script
    First seen 2022-11-25
    Last updated 2023-01-18 (10 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Marvel link

    Designer Carolina Trebol
    Subsets menu, latin
    Languages 10% (106/1037) of languages using the Latin script
    First seen 2011-08-03
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Mate link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu
    Languages 26% (273/1037) of languages using the Latin script
    First seen 2011-11-02
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Mate SC link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu
    Languages 15% (158/1037) of languages using the Latin script
    First seen 2011-11-02
    Last updated 2023-02-24 (8 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Maven Pro link

    Designer Joe Prince
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (315/1037) of languages using the Latin script
    First seen 2011-05-25
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does METADATA.pb copyright field contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Font contains '.notdef' as its first glyph?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • McLaren link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-08-13
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Mea Culpa link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2021-12-02
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Meddon link

    Designer Vernon Adams
    Subsets menu, latin
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-02-02
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains unique glyph names?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • MedievalSharp link

    Designer Wojciech Kalinowski
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-03-02
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check METADATA.pb font weights are correct.
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check glyphs do not have duplicate components which have the same x,y coordinates.
  • Full Fontbakery report
  • Medula One link

    Designer LatinoType
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Meera Inimai link

    Designer SMC
    Subsets latin, menu, tamil
    Languages
    • 10% (107/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Tamil script (Missing Badaga)
    First seen 2016-06-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Megrim link

    Designer Daniel Johnson
    Subsets menu, latin
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-05-04
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check METADATA.pb font weights are correct.
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Meie Script link

    Designer Johan Kallas, Mihkel Virkus
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-08-21
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Meow Script link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (308/1037) of languages using the Latin script
    First seen 2021-11-02
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Merge One link

    Designer Kosal Sen
    Subsets menu, latin, latin-ext
    Languages
    First seen 2012-10-05
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check font can render its own name.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Merienda link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (321/1037) of languages using the Latin script
    First seen 2012-10-31
    Last updated 2022-10-13 (1 year, 1 month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
  • Full Fontbakery report
  • Merriweather link

    Designer Sorkin Type
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 30% (321/1037) of languages using the Latin script
    • 83% (65/78) of languages using the Cyrillic script
    First seen 2011-05-11
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Merriweather Sans link

    Designer Sorkin Type
    Subsets cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages 32% (336/1037) of languages using the Latin script
    First seen 2013-03-06
    Last updated 2023-03-15 (8 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Mervale Script link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-11-12
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Metal link

    Designer Danh Hong
    Subsets khmer, latin, menu
    Languages
    • 10% (104/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Khmer script
    First seen 2011-03-02
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Metal Mania link

    Designer Open Window
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-07-11
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Metamorphous link

    Designer James Grieshaber
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-12-07
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Metrophobic link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (332/1037) of languages using the Latin script
    First seen 2011-05-11
    Last updated 2023-02-28 (8 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
  • Full Fontbakery report
  • Miama link

    Designer Linus Romer
    Subsets menu, greek, greek-ext, latin, latin-ext
    Languages
    • 31% (331/1037) of languages using the Latin script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2012-05-09
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb: According to Google Fonts standards, families should have a Regular style.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.style "italic" matches font internals?
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Checking head.macStyle value.
    • FAIL: Checking OS/2 fsSelection value.
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Michroma link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu
    Languages 26% (276/1037) of languages using the Latin script
    First seen 2011-03-30
    Last updated 2023-08-15 (3 months ago)
    Latest releases

    Milonga link

    Designer Impallari Type
    Subsets menu, latin, latin-ext
    Languages 11% (119/1037) of languages using the Latin script
    First seen 2012-11-30
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Glyph names are all valid?
  • Full Fontbakery report
  • Miltonian link

    Designer Impallari Type
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-04-06
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Miltonian Tattoo link

    Designer Impallari Type
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-04-06
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Mina link

    Designer Suman Bhandary, Natanael Gama, Mooniak
    Subsets bengali, latin, latin-ext, menu
    Languages
    • 10% (113/1037) of languages using the Latin script
    • 23% (4/17) of languages using the Bangla script (Supports Assamese; Bengali; Bishnupriya; Rangpuri)
    First seen 2017-02-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Mingzat link

    Designer SIL International
    Subsets latin, latin-ext, lepcha, menu
    Languages
    • Defined language in metadata: lep_Lepc
    • 10% (107/1037) of languages using the Latin script
    First seen 2022-05-26
    Last updated 2023-07-28 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Miniver link

    Designer Open Window
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Miriam Libre link

    Designer Michal Sahar
    Subsets hebrew, latin, latin-ext, menu
    Languages
    • 15% (157/1037) of languages using the Latin script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2016-06-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Mirza link

    Designer KB Studio
    Subsets arabic, latin, latin-ext, menu
    Languages
    • 26% (271/1037) of languages using the Latin script
    • 6% (5/81) of languages using the Arabic script (Supports Sindhi; Central Kurdish; Urdu; Kashmiri; Uyghur)
    First seen 2016-06-20
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check font has a license.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Miss Fajardose link

    Designer Sudtipos
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-30
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Mitr link

    Designer Cadson Demak
    Subsets latin, latin-ext, menu, thai, vietnamese
    Languages 29% (310/1037) of languages using the Latin script
    First seen 2016-06-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check font has a license.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Mochiy Pop One link

    Designer FONTDASU
    Subsets japanese, latin, menu
    Languages
    • 18% (193/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2021-04-14
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Mochiy Pop P One link

    Designer FONTDASU
    Subsets japanese, latin, menu
    Languages
    • 18% (193/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2021-04-14
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Modak link

    Designer Ek Type
    Subsets menu, devanagari, latin, latin-ext
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 6% (5/78) of languages using the Devanagari script (Supports Maithili; Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2015-02-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Ensure indic fonts have the Indian Rupee Sign glyph.
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Modern Antiqua link

    Designer Wojciech Kalinowski
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-07-13
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check METADATA.pb font weights are correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Mogra link

    Designer Lipi Raval
    Subsets gujarati, latin, latin-ext, menu
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2017-05-09
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check font has a license.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Mohave link

    Designer Gumpita Rahayu
    Subsets latin, latin-ext, menu
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2020-01-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Moirai One link

    Designer Jiyeon Park, JAMO
    Subsets korean, latin, latin-ext, menu
    Languages
    • 18% (195/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Korean script
    First seen 2023-05-18
    Last updated 2023-05-25 (5 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Molengo link

    Designer Denis Jacquerye
    Subsets menu, latin, latin-ext
    Languages 47% (491/1037) of languages using the Latin script
    First seen 2010-04-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: License URL matches License text on name table?
    • FAIL: Version format is correct in 'name' table?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Molle link

    Designer Elena Albertoni
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-09-18
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb: According to Google Fonts standards, families should have a Regular style.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.style "italic" matches font internals?
    • FAIL: METADATA.pb: Font styles are named canonically?
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Monda link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu, vietnamese
    Languages 34% (353/1037) of languages using the Latin script
    First seen 2012-11-30
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Monofett link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu
    Languages 26% (276/1037) of languages using the Latin script
    First seen 2011-05-04
    Last updated 2023-04-21 (7 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Monomaniac One link

    Designer Maniackers Design
    Subsets japanese, latin, latin-ext, menu
    Languages
    • Defined language in metadata: ja_Kana
    • Defined language in metadata: ja_Hira
    • 19% (198/1037) of languages using the Latin script
    First seen 2020-12-08
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Monsieur La Doulaise link

    Designer Sudtipos
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-30
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Montaga link

    Designer Alejandra Rodriguez
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Does METADATA.pb copyright field contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Montagu Slab link

    Designer Florian Karsten
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (336/1037) of languages using the Latin script
    First seen 2021-09-21
    Last updated 2023-09-07 (2 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • MonteCarlo link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 28% (298/1037) of languages using the Latin script
    First seen 2021-05-14
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Montserrat link

    Designer Julieta Ulanovsky, Sol Matas, Juan Pablo del Peral, Jacques Le Bailly
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 30% (319/1037) of languages using the Latin script
    • 80% (63/78) of languages using the Cyrillic script
    First seen 2011-12-13
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Montserrat Alternates link

    Designer Julieta Ulanovsky, Sol Matas, Juan Pablo del Peral, Jacques Le Bailly
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 32% (338/1037) of languages using the Latin script
    • 80% (63/78) of languages using the Cyrillic script
    First seen 2012-10-01
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Check font names are correct
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
    • FAIL: Does full font name begin with the font family name?
  • Full Fontbakery report
  • Montserrat Subrayada link

    Designer Julieta Ulanovsky
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-10-01
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Whitespace glyphs have ink?
    • FAIL: Are there unwanted tables?
    • FAIL: Does full font name begin with the font family name?
  • Full Fontbakery report
  • Moo Lah Lah link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (317/1037) of languages using the Latin script
    First seen 2021-11-26
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
  • Full Fontbakery report
  • Mooli link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu
    Languages 25% (268/1037) of languages using the Latin script
    First seen 2023-08-30
    Last updated 2023-08-30 (2 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Moon Dance link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (316/1037) of languages using the Latin script
    First seen 2021-11-18
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Moul link

    Designer Danh Hong
    Subsets khmer, latin, menu
    Languages
    • 10% (104/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Khmer script
    First seen 2011-03-02
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
  • Full Fontbakery report
  • Moulpali link

    Designer Danh Hong
    Subsets khmer, latin, menu
    Languages
    • 10% (104/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Khmer script
    First seen 2011-03-02
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Mouse Memoirs link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-11-02
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Mr Bedfort link

    Designer Sudtipos
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-11
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Mr Dafoe link

    Designer Sudtipos
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-30
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Mr De Haviland link

    Designer Sudtipos
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-30
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Mrs Saint Delafield link

    Designer Sudtipos
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-11
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Mrs Sheppards link

    Designer Sudtipos
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-30
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Ms Madi link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (317/1037) of languages using the Latin script
    First seen 2022-03-24
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Mukta link

    Designer Ek Type
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 6% (5/78) of languages using the Devanagari script (Supports Maithili; Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2017-01-26
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Mukta Mahee link

    Designer Ek Type
    Subsets gurmukhi, latin, latin-ext, menu
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2017-05-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Mukta Malar link

    Designer Ek Type
    Subsets latin, latin-ext, menu, tamil
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Tamil script (Missing Badaga)
    First seen 2017-02-13
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Mukta Vaani link

    Designer Ek Type
    Subsets gujarati, latin, latin-ext, menu
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Gujarati script
    First seen 2016-06-15
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Mulish link

    Designer Vernon Adams, Cyreal, Jacques Le Bailly
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 35% (366/1037) of languages using the Latin script
    • 82% (64/78) of languages using the Cyrillic script
    First seen 2011-05-25
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
    • FAIL: Font contains '.notdef' as its first glyph?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Murecho link

    Designer Neil Summerour
    Subsets cyrillic, cyrillic-ext, greek, japanese, latin, latin-ext, menu
    Languages
    • 28% (299/1037) of languages using the Latin script
    • 19% (15/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2021-10-27
    Last updated 2023-10-02 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • MuseoModerno link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 28% (292/1037) of languages using the Latin script
    First seen 2020-05-18
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Check name table for empty records.
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • My Soul link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (317/1037) of languages using the Latin script
    First seen 2022-03-24
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Mynerve link

    Designer Carolina Short
    Subsets greek, latin, latin-ext, menu, vietnamese
    Languages
    • 52% (548/1037) of languages using the Latin script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2023-01-04
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Mystery Quest link

    Designer Sideshow
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-02-29
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • NATS link

    Designer Purushoth Kumar Guttula
    Subsets menu, latin, telugu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2014-12-10
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: Check font names are correct
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • NTR link

    Designer Purushoth Kumar Guttula
    Subsets menu, latin, telugu
    Languages 10% (105/1037) of languages using the Latin script
    First seen 2014-12-10
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does METADATA.pb copyright field contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Nabla link

    Designer Arthur Reinders Folmer, Just van Rossum
    Subsets cyrillic-ext, latin, latin-ext, math, menu, vietnamese
    Languages 26% (270/1037) of languages using the Latin script
    First seen 2022-08-15
    Last updated 2023-03-03 (8 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check for METADATA subsets with zero support.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Validate METADATA.pb axes tags are defined in gf_axisregistry.
    • FAIL: Check font has the expected color font tables.
  • Full Fontbakery report
  • Namdhinggo link

    Designer SIL International
    Subsets latin, latin-ext, limbu, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2023-07-06
    Last updated 2023-07-06 (4 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Nanum Brush Script link

    Designer Sandoll Communication
    Subsets korean, latin, menu
    Languages
    • 10% (105/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Korean script
    First seen 2012-05-09
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a CJK family are similar to the same family hosted on Google Fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
  • Full Fontbakery report
  • Nanum Gothic link

    Designer Sandoll Communication
    Subsets korean, latin, menu
    Languages
    • 10% (108/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Korean script
    First seen 2012-05-09
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: Check METADATA.pb font weights are correct.
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: Check if the vertical metrics of a CJK family are similar to the same family hosted on Google Fonts.
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Nanum Gothic Coding link

    Designer Sandoll Communication
    Subsets menu, korean
    Languages
    • 10% (111/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Korean script
    First seen 2012-05-09
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Checking OS/2 fsType does not impose restrictions.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Check METADATA.pb includes production subsets.
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: Check if OS/2 xAvgCharWidth is correct.
    • FAIL: Fonts have consistent underline thickness?
  • Full Fontbakery report
  • Nanum Myeongjo link

    Designer Sandoll Communication
    Subsets korean, latin, menu
    Languages 100% (1/1) of languages using the Korean script
    First seen 2012-05-09
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: Check if the vertical metrics of a CJK family are similar to the same family hosted on Google Fonts.
    • FAIL: Check METADATA.pb font weights are correct.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Font contains unique glyph names?
  • Full Fontbakery report
  • Nanum Pen Script link

    Designer Sandoll Communication
    Subsets menu, korean
    Languages
    • 10% (105/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Korean script
    First seen 2012-05-09
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Check METADATA.pb includes production subsets.
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check if the vertical metrics of a CJK family are similar to the same family hosted on Google Fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Font contains unique glyph names?
    • FAIL: PostScript name follows OpenType specification requirements?
    • FAIL: Name table ID 6 (PostScript name) must be consistent across platforms.
  • Full Fontbakery report
  • Narnoor link

    Designer SIL International
    Subsets gunjala-gondi, latin, latin-ext, math, menu, symbols
    Languages
    • Defined language in metadata: wsg_Gong
    • 18% (196/1037) of languages using the Latin script
    First seen 2023-03-03
    Last updated 2023-11-02 (19 days ago)
    • Version Version 3.000 moved to sandbox on 2023-11-10 (12 days ago)
    • Version Version 3.000 moved to dev on 2023-11-05 (17 days ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check for METADATA subsets with zero support.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Neonderthaw link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2021-11-18
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Nerko One link

    Designer Nermin Kahrimanovic
    Subsets latin, latin-ext, menu
    Languages 11% (116/1037) of languages using the Latin script
    First seen 2020-11-06
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Neucha link

    Designer Jovanny Lemonad
    Subsets menu, cyrillic, latin
    Languages
    • 10% (106/1037) of languages using the Latin script
    • 1% (1/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic))
    First seen 2010-09-21
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Neuton link

    Designer Brian Zick
    Subsets latin, latin-ext, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-02-09
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does METADATA.pb copyright field contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
  • Full Fontbakery report
  • New Rocker link

    Designer Impallari Type
    Subsets menu, latin, latin-ext
    Languages 11% (119/1037) of languages using the Latin script
    First seen 2012-11-30
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • New Tegomin link

    Designer Kousuke Nagai
    Subsets japanese, latin, latin-ext, menu
    Languages
    • 11% (121/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2020-12-14
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • News Cycle link

    Designer Nathan Willis
    Subsets menu, latin, latin-ext
    Languages
    • 29% (308/1037) of languages using the Latin script
    • 3% (3/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic); Serbian; Macedonian)
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2011-04-27
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Newsreader link

    Designer Production Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (309/1037) of languages using the Latin script
    First seen 2020-07-01
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
    • FAIL: STAT table has Axis Value tables?
  • Full Fontbakery report
  • Niconne link

    Designer Vernon Adams
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Niramit link

    Designer Cadson Demak
    Subsets latin, latin-ext, menu, thai, vietnamese
    Languages 32% (341/1037) of languages using the Latin script
    First seen 2018-08-22
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Nixie One link

    Designer Jovanny Lemonad
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-06-21
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Nobile link

    Designer Vernon Adams
    Subsets menu, latin, latin-ext
    Languages
    • 10% (113/1037) of languages using the Latin script
    • 3% (3/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic); Serbian; Nogai)
    First seen 2010-05-10
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Glyph names are all valid?
    • FAIL: Font contains unique glyph names?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Description strings in the name table must not contain copyright info.
    • FAIL: Checking correctness of monospaced metadata.
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
    • FAIL: MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?
  • Full Fontbakery report
  • Nokora link

    Designer Danh Hong
    Subsets khmer, latin, menu
    Languages
    • 10% (104/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Khmer script
    First seen 2011-11-09
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Norican link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu
    Languages 26% (274/1037) of languages using the Latin script
    First seen 2012-02-08
    Last updated 2023-08-03 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Nosifer link

    Designer Typomondo
    Subsets menu, latin, latin-ext
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Nosifer Caps link

    Designer Typomondo
    Subsets menu, latin, latin-ext
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2011-10-24
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check METADATA.pb font weights are correct.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Checking OS/2 fsSelection value.
  • Full Fontbakery report
  • Notable link

    Designer Eli Block, Hana Tanimura, Noemie Le Coz
    Subsets latin, menu
    Languages 20% (209/1037) of languages using the Latin script
    First seen 2018-08-03
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Does the font have any invalid feature tags?
  • Full Fontbakery report
  • Nothing You Could Do link

    Designer Kimberly Geswein
    Subsets menu, latin
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2011-05-11
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Noticia Text link

    Designer JM Solé
    Subsets menu, latin, latin-ext, vietnamese
    Languages 29% (311/1037) of languages using the Latin script
    First seen 2012-02-08
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Nova Cut link

    Designer Wojciech Kalinowski
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-03-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Nova Flat link

    Designer Wojciech Kalinowski
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-03-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Nova Mono link

    Designer Wojciech Kalinowski
    Subsets menu, greek, latin, latin-ext
    Languages 11% (120/1037) of languages using the Latin script
    First seen 2011-03-23
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Checking OS/2 fsType does not impose restrictions.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Nova Oval link

    Designer Wojciech Kalinowski
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-03-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Nova Round link

    Designer Wojciech Kalinowski
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-03-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Nova Script link

    Designer Wojciech Kalinowski
    Subsets latin, menu
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-03-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Font styles are named canonically?
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Are there unwanted tables?
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
  • Full Fontbakery report
  • Nova Slim link

    Designer Wojciech Kalinowski
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-03-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Nova Square link

    Designer Wojciech Kalinowski
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-04-14
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Numans link

    Designer Jovanny Lemonad
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-08-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Nunito link

    Designer Vernon Adams, Cyreal, Jacques Le Bailly
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 34% (362/1037) of languages using the Latin script
    • 82% (64/78) of languages using the Cyrillic script
    First seen 2012-08-12
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Nunito Sans link

    Designer Vernon Adams, Jacques Le Bailly, Manvel Shmavonyan, Alexei Vanyashin
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 35% (367/1037) of languages using the Latin script
    • 82% (64/78) of languages using the Cyrillic script
    First seen 2016-10-06
    Last updated 2023-03-31 (7 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Nuosu SIL link

    Designer SIL International
    Subsets latin, latin-ext, menu, yi
    Languages
    • 10% (107/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Yi script
    First seen 2022-04-28
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • OFL Sorts Mill Goudy TT link

    Designer Barry Schwartz
    Subsets menu, latin
    Languages 24% (250/1037) of languages using the Latin script
    First seen 2010-05-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Ensure Italic styles have Roman counterparts.
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Does METADATA.pb copyright field contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check METADATA.pb font weights are correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Odibee Sans link

    Designer James Barnard
    Subsets latin, menu
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2019-11-08
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Odor Mean Chey link

    Designer Danh Hong
    Subsets khmer, latin, menu
    Languages
    • 10% (104/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Khmer script
    First seen 2011-03-02
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Offside link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu
    Languages 26% (273/1037) of languages using the Latin script
    First seen 2012-10-26
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
  • Full Fontbakery report
  • Oi link

    Designer Kostas Bartsokas
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu, tamil, vietnamese
    Languages
    • 29% (303/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    • 50% (1/2) of languages using the Tamil script (Missing Badaga)
    First seen 2021-02-03
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Old Standard TT link

    Designer Alexey Kryukov
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 30% (313/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    First seen 2010-05-18
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Fonts have consistent underline thickness?
  • Full Fontbakery report
  • Oldenburg link

    Designer Nicole Fally
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Ole link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2021-12-02
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Oleo Script link

    Designer soytutype fonts
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-03-29
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Oleo Script Swash Caps link

    Designer soytutype fonts
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-11-12
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Onest link

    Designer Dmitri Voloshin, Andrey Kudryavtsev
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu
    Languages
    • 26% (276/1037) of languages using the Latin script
    • 15% (12/78) of languages using the Cyrillic script
    First seen 2023-09-06
    Last updated 2023-10-19 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • Full Fontbakery report
  • Oooh Baby link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2021-11-26
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Open Sans link

    Designer Steve Matteson
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, hebrew, latin, latin-ext, math, menu, symbols, vietnamese
    Languages
    • 29% (302/1037) of languages using the Latin script
    • 82% (64/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    • 28% (2/7) of languages using the Hebrew script (Missing Ladino; Yiddish; Samaritan Aramaic; Judeo-Arabic; Chinese, Hebrew)
    First seen 2011-02-02
    Last updated 2023-11-17 (4 days ago)
    • Version Version 3.003 moved to dev on 2023-11-18 (4 days ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check variable font instances
    • FAIL: Font contains '.notdef' as its first glyph?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Oranienbaum link

    Designer Oleg Pospelov, Jovanny Lemonad
    Subsets menu, cyrillic, cyrillic-ext, latin, latin-ext
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 1% (1/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic))
    First seen 2012-08-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Orbit link

    Designer Sooun Cho, JAMO
    Subsets korean, latin, latin-ext, menu
    Languages
    • 14% (153/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Korean script
    First seen 2023-05-18
    Last updated 2023-05-25 (5 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking correctness of monospaced metadata.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Orbitron link

    Designer Matt McInerney
    Subsets latin, menu
    Languages 17% (177/1037) of languages using the Latin script
    First seen 2010-12-15
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
  • Full Fontbakery report
  • Oregano link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-08-13
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb: Copyright notice is the same in all fonts?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Orelega One link

    Designer Haruki Wakamatsu
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu
    Languages
    • 26% (275/1037) of languages using the Latin script
    • 50% (39/78) of languages using the Cyrillic script
    First seen 2021-03-12
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Does the font have any invalid language tags?
  • Full Fontbakery report
  • Orienta link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu
    Languages 26% (273/1037) of languages using the Latin script
    First seen 2012-09-07
    Last updated 2023-02-10 (9 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
  • Full Fontbakery report
  • Original Surfer link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-12-07
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Oswald link

    Designer Vernon Adams, Kalapi Gajjar, Cyreal
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 32% (342/1037) of languages using the Latin script
    • 82% (64/78) of languages using the Cyrillic script
    First seen 2012-02-29
    Last updated 2023-07-20 (4 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Otomanopee One link

    Designer Gutenberg Labo
    Subsets japanese, latin, latin-ext, menu
    Languages 10% (111/1037) of languages using the Latin script
    First seen 2020-12-14
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Outfit link

    Designer Smartsheet Inc, Rodrigo Fuenzalida
    Subsets latin, latin-ext, menu
    Languages 26% (276/1037) of languages using the Latin script
    First seen 2021-09-28
    Last updated 2023-03-29 (7 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
  • Full Fontbakery report
  • Over the Rainbow link

    Designer Kimberly Geswein
    Subsets menu, latin
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2011-04-27
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Overlock link

    Designer Dario Manuel Muhafara
    Subsets latin, latin-ext, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Overlock SC link

    Designer Dario Manuel Muhafara
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Overpass link

    Designer Delve Withrington, Dave Bailey, Thomas Jockin
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 57% (598/1037) of languages using the Latin script
    • 70% (55/78) of languages using the Cyrillic script
    First seen 2016-12-02
    Last updated 2023-09-27 (a month ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Overpass Mono link

    Designer Delve Withrington, Dave Bailey, Thomas Jockin
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 59% (617/1037) of languages using the Latin script
    • 70% (55/78) of languages using the Cyrillic script
    First seen 2016-12-02
    Last updated 2023-09-27 (a month ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Ovo link

    Designer Nicole Fally
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-07-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Oxanium link

    Designer Severin Meyer
    Subsets latin, latin-ext, menu
    Languages 24% (259/1037) of languages using the Latin script
    First seen 2020-01-30
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Oxygen link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2012-03-29
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Checking correctness of monospaced metadata.
    • FAIL: MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?
  • Full Fontbakery report
  • Oxygen Mono link

    Designer Vernon Adams
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-09-08
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Are there unwanted tables?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Checking correctness of monospaced metadata.
  • Full Fontbakery report
  • PT Mono link

    Designer ParaType
    Subsets menu, cyrillic, cyrillic-ext, latin, latin-ext
    Languages
    • 11% (117/1037) of languages using the Latin script
    • 2% (2/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic); Serbian)
    First seen 2012-02-29
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • PT Sans link

    Designer ParaType
    Subsets menu, cyrillic, cyrillic-ext, latin, latin-ext
    Languages
    • 11% (117/1037) of languages using the Latin script
    • 2% (2/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic); Serbian)
    First seen 2010-09-21
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • PT Sans Caption link

    Designer ParaType
    Subsets menu, cyrillic, cyrillic-ext, latin, latin-ext
    Languages
    • 11% (117/1037) of languages using the Latin script
    • 2% (2/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic); Serbian)
    First seen 2010-09-21
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • PT Sans Narrow link

    Designer ParaType
    Subsets menu, cyrillic, cyrillic-ext, latin, latin-ext
    Languages
    • 11% (117/1037) of languages using the Latin script
    • 2% (2/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic); Serbian)
    First seen 2010-09-21
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • PT Serif link

    Designer ParaType
    Subsets menu, cyrillic, cyrillic-ext, latin, latin-ext
    Languages
    • 11% (117/1037) of languages using the Latin script
    • 2% (2/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic); Serbian)
    First seen 2011-02-09
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • PT Serif Caption link

    Designer ParaType
    Subsets menu, cyrillic, cyrillic-ext, latin, latin-ext
    Languages
    • 11% (117/1037) of languages using the Latin script
    • 2% (2/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic); Serbian)
    First seen 2011-02-09
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Pacifico link

    Designer Vernon Adams, Jacques Le Bailly, Botjo Nikoltchev, Ani Petrova
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 30% (316/1037) of languages using the Latin script
    • 82% (64/78) of languages using the Cyrillic script
    First seen 2011-03-09
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Padauk link

    Designer SIL International
    Subsets latin, latin-ext, menu, myanmar
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2016-11-08
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Does the font have any invalid language tags?
  • Full Fontbakery report
  • Padyakke Expanded One link

    Designer James Puckett
    Subsets kannada, latin, latin-ext, menu
    Languages 28% (291/1037) of languages using the Latin script
    First seen 2022-12-06
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Palanquin link

    Designer Pria Ravichandran
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 6% (5/78) of languages using the Devanagari script (Supports Maithili; Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2015-01-28
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Ensure indic fonts have the Indian Rupee Sign glyph.
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Palanquin Dark link

    Designer Pria Ravichandran
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 6% (5/78) of languages using the Devanagari script (Supports Maithili; Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2015-01-28
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Ensure indic fonts have the Indian Rupee Sign glyph.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Palette Mosaic link

    Designer Shibuya Font
    Subsets japanese, latin, menu
    Languages
    • Defined language in metadata: ja_Kana
    • Defined language in metadata: ja_Hira
    • 10% (104/1037) of languages using the Latin script
    First seen 2021-04-13
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Pangolin link

    Designer Kevin Burke
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 29% (309/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    First seen 2017-02-12
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
  • Full Fontbakery report
  • Paprika link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu
    Languages 26% (273/1037) of languages using the Latin script
    First seen 2012-10-26
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Parisienne link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-01-25
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Passero One link

    Designer Viktoriya Grabowska
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-08-31
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Passion One link

    Designer Fontstage
    Subsets latin, latin-ext, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-13
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Passions Conflict link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (319/1037) of languages using the Latin script
    First seen 2021-10-08
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Pathway Extreme link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (314/1037) of languages using the Latin script
    First seen 2023-02-08
    Last updated 2023-03-15 (8 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Font contains '.notdef' as its first glyph?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Pathway Gothic One link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu
    Languages 26% (273/1037) of languages using the Latin script
    First seen 2013-06-05
    Last updated 2023-03-15 (8 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Patrick Hand link

    Designer Patrick Wagesreiter
    Subsets menu, latin, latin-ext, vietnamese
    Languages 5% (55/1037) of languages using the Latin script
    First seen 2011-07-06
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Patrick Hand SC link

    Designer Patrick Wagesreiter
    Subsets latin, latin-ext, menu, vietnamese
    Languages 5% (55/1037) of languages using the Latin script
    First seen 2013-02-27
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Pattaya link

    Designer Cadson Demak
    Subsets cyrillic, latin, latin-ext, menu, thai, vietnamese
    Languages
    • 29% (307/1037) of languages using the Latin script
    • 19% (15/78) of languages using the Cyrillic script
    First seen 2016-06-20
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Patua One link

    Designer LatinoType
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Pavanam link

    Designer Tharique Azeez
    Subsets latin, latin-ext, menu, tamil
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Tamil script (Missing Badaga)
    First seen 2016-06-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does METADATA.pb copyright field contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Ensure indic fonts have the Indian Rupee Sign glyph.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Space and non-breaking space have the same width?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Paytone One link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (335/1037) of languages using the Latin script
    First seen 2011-05-04
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Peddana link

    Designer Appaji Ambarisha Darbha
    Subsets menu, latin, telugu
    Languages 10% (105/1037) of languages using the Latin script
    First seen 2014-12-10
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: Check font names are correct
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Peralta link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-07-11
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Petemoss link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (319/1037) of languages using the Latin script
    First seen 2021-10-08
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Petit Formal Script link

    Designer Impallari Type
    Subsets menu, latin, latin-ext
    Languages 11% (119/1037) of languages using the Latin script
    First seen 2012-09-07
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Petrona link

    Designer Ringo R. Seeber
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (322/1037) of languages using the Latin script
    First seen 2020-07-15
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Phetsarath link

    Designer Danh Hong
    Subsets lao
    Languages
    First seen 2012-05-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Checking OS/2 fsType does not impose restrictions.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Are there unwanted Apple tables?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check font can render its own name.
    • FAIL: There must not be VTT Talk sources in the font.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Check if OS/2 xAvgCharWidth is correct.
  • Full Fontbakery report
  • Philosopher link

    Designer Jovanny Lemonad
    Subsets cyrillic, cyrillic-ext, latin, menu, vietnamese
    Languages
    • 21% (220/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    First seen 2011-08-31
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
  • Full Fontbakery report
  • Phudu link

    Designer Dương Trần
    Subsets cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages 30% (312/1037) of languages using the Latin script
    First seen 2023-01-31
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Check font names are correct
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Piazzolla link

    Designer Juan Pablo del Peral, Huerta Tipográfica
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 31% (327/1037) of languages using the Latin script
    • 80% (63/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2020-08-27
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    • v2.005 (1 year, 10 months ago)
    • (2 years ago)
    • v2.003 (3 years ago)
    • v2.002 (3 years ago)
    • (3 years ago)
    • (3 years ago)
    • v1.350 (3 years ago)
    • (3 years ago)
    • (3 years ago)
    • (3 years ago)
    • v1.310 (3 years ago)
    • (3 years ago)
    • (3 years ago)
    • v1.100 (3 years ago)
    • v1.000 (3 years ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Check font names are correct
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Validate defaults on fvar table match registered fallback names in GFAxisRegistry.
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Piedra link

    Designer Sudtipos
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-30
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Pinyon Script link

    Designer Nicole Fally
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (326/1037) of languages using the Latin script
    First seen 2011-10-12
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Pirata One link

    Designer Rodrigo Fuenzalida, Nicolas Massi
    Subsets menu, latin, latin-ext
    Languages 11% (116/1037) of languages using the Latin script
    First seen 2012-10-31
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Pixelify Sans link

    Designer Stefie Justprince
    Subsets cyrillic, latin, latin-ext, menu
    Languages
    • 26% (276/1037) of languages using the Latin script
    • 6% (5/78) of languages using the Cyrillic script (Supports Russian; Macedonian; Serbian; Belarusian; Bulgarian)
    First seen 2023-09-13
    Last updated 2023-09-13 (2 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Plaster link

    Designer Sorkin Type
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-12-13
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Play link

    Designer Jonas Hecksher
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu, vietnamese
    Languages
    • 19% (207/1037) of languages using the Latin script
    • 75% (59/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2011-05-04
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Playball link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 27% (283/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Playfair link

    Designer Claus Eggers Sørensen
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 17% (185/1037) of languages using the Latin script
    • 41% (32/78) of languages using the Cyrillic script
    First seen 2023-04-13
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: Check font names are correct
    • FAIL: Validate METADATA.pb axes values are within gf_axisregistry bounds.
    • FAIL: Validate defaults on fvar table match registered fallback names in GFAxisRegistry.
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Playfair Display link

    Designer Claus Eggers Sørensen
    Subsets cyrillic, latin, latin-ext, menu, vietnamese
    Languages
    • 30% (319/1037) of languages using the Latin script
    • 35% (28/78) of languages using the Cyrillic script
    First seen 2011-11-16
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Playfair Display SC link

    Designer Claus Eggers Sørensen
    Subsets cyrillic, latin, latin-ext, menu, vietnamese
    Languages
    • 28% (296/1037) of languages using the Latin script
    • 32% (25/78) of languages using the Cyrillic script
    First seen 2012-10-26
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Playpen Sans link

    Designer TypeTogether, Veronika Burian, Laura Meseguer, José Scaglione
    Subsets latin, latin-ext, math, menu, symbols, vietnamese
    Languages 30% (313/1037) of languages using the Latin script
    First seen 2023-09-07
    Last updated 2023-11-21 (12 hours ago)
    • Version Version 1.001 moved to production on 2023-10-20 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Plus Jakarta Sans link

    Designer Tokotype
    Subsets cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages 30% (320/1037) of languages using the Latin script
    First seen 2022-03-24
    Last updated 2023-06-14 (5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check font names are correct
  • Full Fontbakery report
  • Podkova link

    Designer Cyreal
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 32% (340/1037) of languages using the Latin script
    • 82% (64/78) of languages using the Cyrillic script
    First seen 2011-05-18
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    • v2.103 (1 year, 10 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Poetsen One link

    Designer Rodrigo Fuenzalida, Pablo Impallari
    Subsets menu, latin, latin-ext
    Languages 11% (119/1037) of languages using the Latin script
    First seen 2012-09-07
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Is there a usable "kern" table declared in the font?
  • Full Fontbakery report
  • Poiret One link

    Designer Denis Masharov
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 31% (322/1037) of languages using the Latin script
    • 71% (56/78) of languages using the Cyrillic script
    First seen 2012-02-29
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
  • Full Fontbakery report
  • Poller One link

    Designer Yvonne Schüttler
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-09-28
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Poltawski Nowy link

    Designer Adam Półtawski, Mateusz Machalski, Borys Kosmynka, Ania Wieluńska
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (331/1037) of languages using the Latin script
    First seen 2023-03-10
    Last updated 2023-05-19 (6 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check font names are correct
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Poly link

    Designer Nicolás Silva
    Subsets menu, latin, latin-ext
    Languages 11% (120/1037) of languages using the Latin script
    First seen 2011-11-02
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Pompiere link

    Designer Karolina Lach
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-07-20
    Last updated 2023-08-09 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Ponnala link

    Designer Appaji Ambarisha Darbha
    Subsets menu, latin, telugu
    Languages
    First seen 2014-12-10
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check font can render its own name.
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Pontano Sans link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu
    Languages 27% (287/1037) of languages using the Latin script
    First seen 2012-03-14
    Last updated 2023-09-14 (2 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does METADATA.pb copyright field contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
  • Full Fontbakery report
  • Poor Story link

    Designer Yoon Design
    Subsets korean, latin, menu
    Languages
    • 10% (105/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Korean script
    First seen 2018-02-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Does full font name begin with the font family name?
  • Full Fontbakery report
  • Poppins link

    Designer Indian Type Foundry, Jonny Pinhorn
    Subsets latin, latin-ext, menu
    Languages
    • 11% (116/1037) of languages using the Latin script
    • 5% (4/78) of languages using the Devanagari script (Supports Eastern Tamang; Kangri; Dotyali; Goan Konkani)
    First seen 2015-06-03
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: Check METADATA.pb includes production subsets.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Port Lligat Sans link

    Designer Tipo
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-18
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Port Lligat Slab link

    Designer Tipo
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-18
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Porter Sans Block link

    Designer Tyler Finck
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2013-12-03
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Description strings in the name table must not contain copyright info.
    • FAIL: Does full font name begin with the font family name?
  • Full Fontbakery report
  • Post No Bills Colombo link

    Designer Mooniak
    Subsets latin, latin-ext, menu, sinhala
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2017-02-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Font has all mandatory 'name' table entries?
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Verify that family names in the name table are consistent across all fonts in the family. Checks Typographic Family name (nameID 16) if present, otherwise uses Font Family name (nameID 1)
  • Full Fontbakery report
  • Post No Bills Jaffna link

    Designer Mooniak
    Subsets latin, latin-ext, menu, tamil
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Tamil script (Missing Badaga)
    First seen 2017-02-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: Check font names are correct
    • FAIL: Font has all mandatory 'name' table entries?
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure indic fonts have the Indian Rupee Sign glyph.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Verify that family names in the name table are consistent across all fonts in the family. Checks Typographic Family name (nameID 16) if present, otherwise uses Font Family name (nameID 1)
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Potta One link

    Designer Font Zone 108
    Subsets japanese, latin, latin-ext, menu, vietnamese
    Languages
    • 28% (298/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2020-12-14
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Pragati Narrow link

    Designer Omnibus-Type
    Subsets menu, devanagari, latin, latin-ext
    Languages
    • 26% (272/1037) of languages using the Latin script
    • 6% (5/78) of languages using the Devanagari script (Supports Maithili; Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2015-04-22
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Praise link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 25% (261/1037) of languages using the Latin script
    First seen 2021-10-13
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Prata link

    Designer Cyreal
    Subsets cyrillic, cyrillic-ext, latin, menu, vietnamese
    Languages
    • 21% (227/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    First seen 2011-09-07
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check font has a license.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Preahvihear link

    Designer Danh Hong
    Subsets khmer, latin, menu
    Languages
    • 10% (104/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Khmer script
    First seen 2011-03-02
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Press Start 2P link

    Designer CodeMan38
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu
    Languages
    • 12% (132/1037) of languages using the Latin script
    • 3% (3/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic); Serbian; Macedonian)
    First seen 2012-04-04
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Checking correctness of monospaced metadata.
  • Full Fontbakery report
  • Pridi link

    Designer Cadson Demak
    Subsets latin, latin-ext, menu, thai, vietnamese
    Languages 29% (310/1037) of languages using the Latin script
    First seen 2016-06-20
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
  • Full Fontbakery report
  • Princess Sofia link

    Designer Tart Workshop
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-02-15
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Prociono link

    Designer Barry Schwartz
    Subsets menu, latin
    Languages 21% (225/1037) of languages using the Latin script
    First seen 2011-08-31
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Does the font have any invalid feature tags?
  • Full Fontbakery report
  • Prompt link

    Designer Cadson Demak
    Subsets latin, latin-ext, menu, thai, vietnamese
    Languages 29% (310/1037) of languages using the Latin script
    First seen 2016-06-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Prosto One link

    Designer Jovanny Lemonad, Pavel Emelyanov
    Subsets menu, cyrillic, latin, latin-ext
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 1% (1/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic))
    First seen 2012-02-29
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Proza Libre link

    Designer Jasper de Waard
    Subsets latin, latin-ext, menu
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2016-06-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb: Copyright notice is the same in all fonts?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Public Sans link

    Designer USWDS, Dan Williams, Pablo Impallari, Rodrigo Fuenzalida
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (306/1037) of languages using the Latin script
    First seen 2019-06-07
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Puppies Play link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2021-10-13
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Puritan link

    Designer Ben Weiner
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2010-11-30
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Check font names are correct
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Purple Purse link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-11-16
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Checking correctness of monospaced metadata.
    • FAIL: MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?
  • Full Fontbakery report
  • Qahiri link

    Designer Khaled Hosny
    Subsets arabic, latin, menu
    Languages
    • 10% (105/1037) of languages using the Latin script
    • 1% (1/81) of languages using the Arabic script (Supports Urdu)
    First seen 2021-04-03
    Last updated 2022-11-23 (11 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Quando link

    Designer Joana Correia
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-07-10
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Quantico link

    Designer MADType
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Quattrocento link

    Designer Impallari Type
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-03-20
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Is there a usable "kern" table declared in the font?
  • Full Fontbakery report
  • Quattrocento Sans link

    Designer Impallari Type
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-02-15
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Glyph names are all valid?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
  • Full Fontbakery report
  • Questrial link

    Designer Joe Prince, Laura Meseguer
    Subsets latin, latin-ext, menu, vietnamese
    Languages 36% (376/1037) of languages using the Latin script
    First seen 2011-08-10
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Quicksand link

    Designer Andrew Paglinawan
    Subsets latin, latin-ext, menu, vietnamese
    Languages 33% (344/1037) of languages using the Latin script
    First seen 2011-10-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Quintessential link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-11-02
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Qwigley link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 28% (296/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Qwitcher Grypen link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2021-11-26
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • REM link

    Designer Octavio Pardo
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (314/1037) of languages using the Latin script
    First seen 2023-06-30
    Last updated 2023-07-05 (4 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Racing Sans One link

    Designer Impallari Type
    Subsets menu, latin, latin-ext
    Languages 11% (119/1037) of languages using the Latin script
    First seen 2012-08-13
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Is there a usable "kern" table declared in the font?
  • Full Fontbakery report
  • Radio Canada link

    Designer Charles Daoud, Coppers and Brasses, Alexandre Saumier Demers, Jacques Le Bailly
    Subsets canadian-aboriginal, latin, latin-ext, menu, vietnamese
    Languages 44% (457/1037) of languages using the Latin script
    First seen 2022-03-18
    Last updated 2023-04-13 (7 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Radley link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu
    Languages 10% (111/1037) of languages using the Latin script
    First seen 2011-12-13
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Rajdhani link

    Designer Indian Type Foundry
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (113/1037) of languages using the Latin script
    • 3% (3/78) of languages using the Devanagari script (Supports Eastern Tamang; Dotyali; Goan Konkani)
    First seen 2014-07-09
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Rakkas link

    Designer Zeynep Akay
    Subsets arabic, latin, latin-ext, menu
    Languages
    • 24% (252/1037) of languages using the Latin script
    • 1% (1/81) of languages using the Arabic script (Supports Urdu)
    First seen 2016-06-20
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Raleway link

    Designer Matt McInerney, Pablo Impallari, Rodrigo Fuenzalida
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 25% (263/1037) of languages using the Latin script
    • 79% (62/78) of languages using the Cyrillic script
    First seen 2012-09-07
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Raleway Dots link

    Designer Matt McInerney, Pablo Impallari, Rodrigo Fuenzalida, Brenda Gallo
    Subsets menu, latin, latin-ext
    Languages 10% (112/1037) of languages using the Latin script
    First seen 2012-09-07
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Is there a usable "kern" table declared in the font?
  • Full Fontbakery report
  • Ramabhadra link

    Designer Purushoth Kumar Guttula
    Subsets menu, latin, telugu
    Languages 10% (105/1037) of languages using the Latin script
    First seen 2014-12-10
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: Check font names are correct
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
    • FAIL: Glyph names are all valid?
    • FAIL: Font contains unique glyph names?
  • Full Fontbakery report
  • Ramaraja link

    Designer Appaji Ambarisha Darbha
    Subsets menu, latin, telugu
    Languages 10% (105/1037) of languages using the Latin script
    First seen 2015-01-08
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: Check font names are correct
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Rambla link

    Designer Martin Sommaruga
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-10-31
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Rammetto One link

    Designer Vernon Adams
    Subsets menu, latin, latin-ext
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2011-11-02
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Rampart One link

    Designer Fontworks Inc.
    Subsets cyrillic, japanese, latin, latin-ext, menu
    Languages
    • 21% (220/1037) of languages using the Latin script
    • 10% (8/78) of languages using the Cyrillic script (Supports Moksha; Russian; Nogai; Crimean Turkish; Abaza; Erzya; Kumyk; Bulgarian)
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2021-06-08
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Ranchers link

    Designer Impallari Type
    Subsets menu, latin, latin-ext
    Languages 11% (119/1037) of languages using the Latin script
    First seen 2012-09-07
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Is there a usable "kern" table declared in the font?
  • Full Fontbakery report
  • Ranga link

    Designer TipTopTyp
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (114/1037) of languages using the Latin script
    • 6% (5/78) of languages using the Devanagari script (Supports Maithili; Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2015-01-28
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Are there unwanted Apple tables?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Whitespace glyphs have ink?
    • FAIL: Are there unwanted tables?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Fonts have consistent underline thickness?
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
    • FAIL: Is there a usable "kern" table declared in the font?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Rasa link

    Designer Rosetta, Anna Giedryś, David Březina
    Subsets gujarati, latin, latin-ext, menu, vietnamese
    Languages
    • 32% (340/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Gujarati script
    First seen 2016-06-20
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check name ID 25 to end with "Italic" for Italic VFs.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Rationale link

    Designer Cyreal
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-08-03
    Last updated 2023-08-09 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Ravi Prakash link

    Designer Appaji Ambarisha Darbha
    Subsets menu, latin, telugu
    Languages 10% (105/1037) of languages using the Latin script
    First seen 2015-01-12
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Readex Pro link

    Designer Thomas Jockin, Nadine Chahine, Bonnie Shaver-Troup, Santiago Orozco, Héctor Gómez
    Subsets arabic, latin, latin-ext, menu, vietnamese
    Languages 33% (344/1037) of languages using the Latin script
    First seen 2021-09-16
    Last updated 2023-03-22 (8 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Validate METADATA.pb axes tags are defined in gf_axisregistry.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Recursive link

    Designer Arrow Type, Stephen Nixon
    Subsets cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages 32% (336/1037) of languages using the Latin script
    First seen 2020-05-01
    Last updated 2022-12-02 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: License URL matches License text on name table?
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Check font names are correct
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Check correctness of STAT table strings
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: The variable font 'wght' (Weight) axis coordinate must be 400 on the 'Regular' instance.
    • FAIL: The variable font 'slnt' (Slant) axis coordinate must be zero on the 'Regular' instance.
    • FAIL: The variable font 'wght' (Weight) axis coordinate must be 700 on the 'Bold' instance.
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
    • FAIL: STAT table has Axis Value tables?
  • Full Fontbakery report
  • Red Hat Display link

    Designer MCKL
    Subsets latin, latin-ext, menu
    Languages 11% (119/1037) of languages using the Latin script
    First seen 2019-04-10
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Red Hat Mono link

    Designer MCKL
    Subsets latin, latin-ext, menu
    Languages 11% (119/1037) of languages using the Latin script
    First seen 2021-06-10
    Last updated 2022-07-28 (1 year, 3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Red Hat Text link

    Designer MCKL
    Subsets latin, latin-ext, menu
    Languages 11% (119/1037) of languages using the Latin script
    First seen 2019-04-10
    Last updated 2022-07-28 (1 year, 3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Red Rose link

    Designer Jaikishan Patel
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (320/1037) of languages using the Latin script
    First seen 2020-07-02
    Last updated 2023-09-28 (a month ago)
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Redacted link

    Designer Christian Naths
    Subsets latin, latin-ext, menu
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2013-09-18
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Checking correctness of monospaced metadata.
  • Full Fontbakery report
  • Redacted Script link

    Designer Christian Naths
    Subsets latin, latin-ext, menu
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2013-09-18
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Checking correctness of monospaced metadata.
  • Full Fontbakery report
  • Reddit Sans link

    Designer Reddit Inc., Stephen Hutchings
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (338/1037) of languages using the Latin script
    First seen 2023-10-11
    Last updated 2023-10-12 (a month ago)
    • Version Version 1.012 moved to sandbox on 2023-10-14 (a month ago)
    • Version Version 1.012 moved to dev on 2023-10-13 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
  • Full Fontbakery report
  • Reem Kufi link

    Designer Khaled Hosny, Santiago Orozco
    Subsets arabic, latin, latin-ext, menu, vietnamese
    Languages
    • 32% (339/1037) of languages using the Latin script
    • 4% (4/81) of languages using the Arabic script (Supports Central Kurdish; Punjabi (Arabic); Urdu; Arabic)
    First seen 2016-05-31
    Last updated 2022-11-23 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check font names are correct
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Reem Kufi Fun link

    Designer Khaled Hosny, Santiago Orozco
    Subsets arabic, latin, latin-ext, menu, vietnamese
    Languages
    • 32% (339/1037) of languages using the Latin script
    • 4% (4/81) of languages using the Arabic script (Supports Central Kurdish; Punjabi (Arabic); Urdu; Arabic)
    First seen 2021-11-02
    Last updated 2022-10-13 (1 year, 1 month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check font names are correct
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Glyph names are all valid?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Reem Kufi Ink link

    Designer Khaled Hosny, Santiago Orozco
    Subsets arabic, latin, latin-ext, menu, vietnamese
    Languages
    • 32% (339/1037) of languages using the Latin script
    • 4% (4/81) of languages using the Arabic script (Supports Central Kurdish; Punjabi (Arabic); Urdu; Arabic)
    First seen 2021-11-02
    Last updated 2022-11-24 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Reenie Beanie link

    Designer James Grieshaber
    Subsets menu, latin
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2010-05-10
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check METADATA.pb font weights are correct.
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Reggae One link

    Designer Fontworks Inc.
    Subsets cyrillic, japanese, latin, latin-ext, menu
    Languages
    • 21% (220/1037) of languages using the Latin script
    • 10% (8/78) of languages using the Cyrillic script (Supports Moksha; Russian; Nogai; Crimean Turkish; Abaza; Erzya; Kumyk; Bulgarian)
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2020-12-15
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Rethink Sans link

    Designer Hans Thiessen, Colophon Foundry, Jonny Pinhorn
    Subsets latin, latin-ext, menu
    Languages 26% (276/1037) of languages using the Latin script
    First seen 2023-09-06
    Last updated 2023-10-12 (a month ago)
    • Version Version 1.001 moved to sandbox on 2023-10-14 (a month ago)
    • Version Version 1.001 moved to dev on 2023-10-13 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Revalia link

    Designer Johan Kallas, Mihkel Virkus
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-03-14
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Rhodium Libre link

    Designer James Puckett
    Subsets menu, devanagari, latin, latin-ext
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 6% (5/78) of languages using the Devanagari script (Supports Maithili; Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2015-06-03
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Ribeye link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-11-23
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Ribeye Marrow link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-11-23
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Righteous link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-11-23
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Risque link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-11-11
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Road Rage link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (313/1037) of languages using the Latin script
    First seen 2021-10-22
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Roboto Condensed link

    Designer Christian Robertson
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 14% (149/1037) of languages using the Latin script
    • 5% (4/78) of languages using the Cyrillic script (Supports Assyrian Neo-Aramaic, Cyrillic; Serbian; Bosnian (Cyrillic); Macedonian)
    First seen 2023-07-28
    Last updated 2023-08-03 (3 months ago)
    • Version Version 3.008; 2023 moved to production on 2023-10-20 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Check name ID 25 to end with "Italic" for Italic VFs.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Roboto Flex link

    Designer Font Bureau, David Berlow, Santiago Orozco, Irene Vlachou, Ilya Ruderman, Yury Ostromentsky, Mikhail Strukov
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu, vietnamese
    Languages
    • 31% (330/1037) of languages using the Latin script
    • 60% (47/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2022-05-01
    Last updated 2023-06-30 (4 months ago)
    • Version Version 3.200;gftools[0.9.32] moved to sandbox on 2023-10-26 (26 days ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check variable font instances
    • FAIL: Ensure VFs with duplexed axes do not vary horizontal advance.
    • FAIL: Validate defaults on fvar table match registered fallback names in GFAxisRegistry.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: STAT table has Axis Value tables?
  • Full Fontbakery report
  • Roboto Serif link

    Designer Commercial Type, Greg Gazdowicz
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 32% (334/1037) of languages using the Latin script
    • 64% (50/78) of languages using the Cyrillic script
    First seen 2022-02-10
    Last updated 2023-03-01 (8 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Ensure METADATA.pb lists all font binaries.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Font filenames match font.filename entries?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Checking file is named canonically.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check for METADATA subsets with zero support.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb font.filename field contains font name in right format?
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Ensure VFs with duplexed axes do not vary horizontal advance.
    • FAIL: Check font can render its own name.
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check that OS/2.fsSelection bold & italic settings are unique for each NameID1
    • FAIL: Verify that each group of fonts with the same nameID 1 has maximum of 4 fonts.
    • FAIL: Verify that family names in the name table are consistent across all fonts in the family. Checks Typographic Family name (nameID 16) if present, otherwise uses Font Family name (nameID 1)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Rock 3D link

    Designer Shibuya Font
    Subsets japanese, latin, menu
    Languages
    • Defined language in metadata: ja_Kana
    • Defined language in metadata: ja_Hira
    • 10% (104/1037) of languages using the Latin script
    First seen 2020-12-14
    Last updated 2023-04-27 (6 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • RocknRoll One link

    Designer Fontworks Inc.
    Subsets cyrillic, japanese, latin, latin-ext, menu
    Languages
    • 17% (184/1037) of languages using the Latin script
    • 10% (8/78) of languages using the Cyrillic script (Supports Moksha; Russian; Nogai; Crimean Turkish; Abaza; Erzya; Kumyk; Bulgarian)
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2020-12-15
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Rokkitt link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (332/1037) of languages using the Latin script
    First seen 2011-07-27
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Romanesco link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-08-13
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Ropa Sans link

    Designer Botjo Nikoltchev
    Subsets latin, latin-ext, menu
    Languages 10% (112/1037) of languages using the Latin script
    First seen 2012-01-25
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
  • Full Fontbakery report
  • Rosario link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (314/1037) of languages using the Latin script
    First seen 2011-09-07
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Rosarivo link

    Designer Pablo Ugerman
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-03-29
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
    • FAIL: Does the font have any invalid feature tags?
  • Full Fontbakery report
  • Rouge Script link

    Designer Sabrina Mariela Lopez
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-11
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Rowdies link

    Designer Jaikishan Patel
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (319/1037) of languages using the Latin script
    First seen 2019-10-10
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Rozha One link

    Designer Indian Type Foundry
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (113/1037) of languages using the Latin script
    • 3% (3/78) of languages using the Devanagari script (Supports Eastern Tamang; Dotyali; Goan Konkani)
    First seen 2014-08-13
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Rubik link

    Designer Hubert and Fischer, Meir Sadan, Cyreal, Daniel Grumer, Omaima Dajani
    Subsets arabic, cyrillic, cyrillic-ext, hebrew, latin, latin-ext, menu
    Languages
    • 27% (286/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2015-07-22
    Last updated 2023-06-16 (5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Check font names are correct
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Rubik 80s Fade link

    Designer NaN, Luke Prowse
    Subsets cyrillic, cyrillic-ext, hebrew, latin, latin-ext, menu
    Languages
    • 27% (283/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2022-11-24
    Last updated 2022-11-24 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • Full Fontbakery report
  • Rubik Beastly link

    Designer NaN, Luke Prowse
    Subsets cyrillic, cyrillic-ext, hebrew, latin, latin-ext, menu
    Languages
    • 27% (283/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2021-09-02
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • Full Fontbakery report
  • Rubik Bubbles link

    Designer NaN, Luke Prowse
    Subsets cyrillic, cyrillic-ext, hebrew, latin, latin-ext, menu
    Languages
    • 27% (283/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2022-02-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • Full Fontbakery report
  • Rubik Burned link

    Designer NaN, Luke Prowse
    Subsets cyrillic, cyrillic-ext, hebrew, latin, latin-ext, menu
    Languages
    • 27% (283/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2022-06-16
    Last updated 2022-06-16 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • Full Fontbakery report
  • Rubik Dirt link

    Designer NaN, Luke Prowse
    Subsets cyrillic, cyrillic-ext, hebrew, latin, latin-ext, menu
    Languages
    • 27% (283/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2022-06-16
    Last updated 2022-06-16 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • Full Fontbakery report
  • Rubik Distressed link

    Designer NaN, Luke Prowse
    Subsets cyrillic, cyrillic-ext, hebrew, latin, latin-ext, menu
    Languages
    • 27% (283/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2022-06-16
    Last updated 2022-06-16 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • Full Fontbakery report
  • Rubik Gemstones link

    Designer NaN, Luke Prowse
    Subsets cyrillic, cyrillic-ext, hebrew, latin, latin-ext, menu
    Languages
    • 27% (283/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2022-11-24
    Last updated 2022-11-24 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • Full Fontbakery report
  • Rubik Glitch link

    Designer NaN, Luke Prowse
    Subsets cyrillic, cyrillic-ext, hebrew, latin, latin-ext, menu
    Languages
    • 27% (283/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2022-02-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • Full Fontbakery report
  • Rubik Iso link

    Designer NaN, Luke Prowse
    Subsets cyrillic, cyrillic-ext, hebrew, latin, latin-ext, menu
    Languages
    • 27% (283/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2022-06-16
    Last updated 2022-06-16 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • Full Fontbakery report
  • Rubik Marker Hatch link

    Designer NaN, Luke Prowse
    Subsets cyrillic, cyrillic-ext, hebrew, latin, latin-ext, menu
    Languages
    • 27% (283/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2022-06-16
    Last updated 2022-06-16 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • Full Fontbakery report
  • Rubik Maze link

    Designer NaN, Luke Prowse
    Subsets cyrillic, cyrillic-ext, hebrew, latin, latin-ext, menu
    Languages
    • 27% (283/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2022-06-16
    Last updated 2022-06-16 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • Full Fontbakery report
  • Rubik Microbe link

    Designer NaN, Luke Prowse
    Subsets cyrillic, cyrillic-ext, hebrew, latin, latin-ext, menu
    Languages
    • 27% (283/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2022-02-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • Full Fontbakery report
  • Rubik Mono One link

    Designer Hubert and Fischer
    Subsets cyrillic, cyrillic-ext, hebrew, latin, latin-ext, menu
    Languages
    • 24% (255/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    First seen 2014-05-05
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Checking correctness of monospaced metadata.
  • Full Fontbakery report
  • Rubik Moonrocks link

    Designer NaN, Luke Prowse
    Subsets cyrillic, cyrillic-ext, hebrew, latin, latin-ext, menu
    Languages
    • 27% (283/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2022-02-18
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • Full Fontbakery report
  • Rubik One link

    Designer Hubert and Fischer
    Subsets menu, cyrillic, latin, latin-ext
    Languages
    • 10% (113/1037) of languages using the Latin script
    • 1% (1/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic))
    • 14% (1/7) of languages using the Hebrew script (Missing Judeo-Persian; Yiddish; Samaritan Aramaic; Judeo-Arabic; Hebrew; Chinese, Hebrew)
    First seen 2014-05-05
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Does the font have any invalid script tags?
  • Full Fontbakery report
  • Rubik Pixels link

    Designer NaN, Luke Prowse
    Subsets cyrillic, cyrillic-ext, hebrew, latin, latin-ext, menu
    Languages
    • 27% (283/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2022-11-25
    Last updated 2023-03-01 (8 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • Full Fontbakery report
  • Rubik Puddles link

    Designer NaN, Luke Prowse
    Subsets cyrillic, cyrillic-ext, hebrew, latin, latin-ext, menu
    Languages
    • 27% (283/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2022-02-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
  • Full Fontbakery report
  • Rubik Spray Paint link

    Designer NaN, Luke Prowse
    Subsets cyrillic, cyrillic-ext, hebrew, latin, latin-ext, menu
    Languages
    • 27% (283/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2022-11-24
    Last updated 2022-11-24 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • Full Fontbakery report
  • Rubik Storm link

    Designer NaN, Luke Prowse
    Subsets cyrillic, cyrillic-ext, hebrew, latin, latin-ext, menu
    Languages
    • 27% (283/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2022-11-24
    Last updated 2022-11-24 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • Full Fontbakery report
  • Rubik Vinyl link

    Designer NaN, Luke Prowse
    Subsets cyrillic, cyrillic-ext, hebrew, latin, latin-ext, menu
    Languages
    • 27% (283/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2022-11-24
    Last updated 2022-11-24 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • Full Fontbakery report
  • Rubik Wet Paint link

    Designer NaN, Luke Prowse
    Subsets cyrillic, cyrillic-ext, hebrew, latin, latin-ext, menu
    Languages
    • 27% (283/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2022-02-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
  • Full Fontbakery report
  • Ruda link

    Designer Mariela Monsalve, Angelina Sanchez
    Subsets cyrillic, latin, latin-ext, menu, vietnamese
    Languages
    • 26% (273/1037) of languages using the Latin script
    • 48% (38/78) of languages using the Cyrillic script
    First seen 2012-01-11
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does METADATA.pb copyright field contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font contains '.notdef' as its first glyph?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Rufina link

    Designer Martin Sommaruga
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-10-31
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Ruge Boogie link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (309/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Ruluko link

    Designer Ana Sanfelippo, Angélica Díaz, Meme Hernández
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-11
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Rum Raisin link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-11-02
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Ruslan Display link

    Designer Oleg Snarsky, Denis Masharov, Vladimir Rabdu
    Subsets menu, cyrillic, latin, latin-ext
    Languages
    • 10% (110/1037) of languages using the Latin script
    • 1% (1/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic))
    First seen 2011-05-18
    Last updated 2023-11-09 (12 days ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Russo One link

    Designer Jovanny Lemonad
    Subsets menu, cyrillic, latin, latin-ext
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 1% (1/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic))
    First seen 2012-04-04
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Ruthie link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 27% (285/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Ruwudu link

    Designer SIL International
    Subsets arabic, latin, latin-ext, menu
    Languages
    • 10% (107/1037) of languages using the Latin script
    • 1% (1/81) of languages using the Arabic script (Supports Arabic)
    First seen 2023-07-05
    Last updated 2023-07-20 (4 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Rye link

    Designer Nicole Fally
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-08-21
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • STIX Two Math link

    Designer Tiro Typeworks, Ross Mills, John Hudson, Paul Hanslow
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu, vietnamese
    Languages
    • 30% (318/1037) of languages using the Latin script
    • 19% (15/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2021-04-15
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • STIX Two Text link

    Designer Tiro Typeworks, Ross Mills, John Hudson, Paul Hanslow
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu, vietnamese
    Languages
    • 31% (328/1037) of languages using the Latin script
    • 26% (21/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2021-04-15
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Sacramento link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (112/1037) of languages using the Latin script
    First seen 2012-11-01
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Is there a usable "kern" table declared in the font?
  • Full Fontbakery report
  • Sahitya link

    Designer Juan Pablo del Peral
    Subsets menu, devanagari, latin
    Languages
    • 11% (116/1037) of languages using the Latin script
    • 6% (5/78) of languages using the Devanagari script (Supports Maithili; Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2015-06-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Glyph names are all valid?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Sail link

    Designer Miguel Hernandez
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Saira link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 33% (346/1037) of languages using the Latin script
    First seen 2016-12-03
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Saira Condensed link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (332/1037) of languages using the Latin script
    First seen 2016-12-03
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: All tabular figures must have the same width across the RIBBI-family.
    • FAIL: Check license file has good copyright string.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Check font names are correct
    • FAIL: Does full font name begin with the font family name?
  • Full Fontbakery report
  • Saira Extra Condensed link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (332/1037) of languages using the Latin script
    First seen 2016-12-03
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: All tabular figures must have the same width across the RIBBI-family.
    • FAIL: Check license file has good copyright string.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Check font names are correct
    • FAIL: Does full font name begin with the font family name?
  • Full Fontbakery report
  • Saira Semi Condensed link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (332/1037) of languages using the Latin script
    First seen 2016-12-03
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: All tabular figures must have the same width across the RIBBI-family.
    • FAIL: Check license file has good copyright string.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Check font names are correct
    • FAIL: Does full font name begin with the font family name?
  • Full Fontbakery report
  • Saira Stencil One link

    Designer Hector Gatti, Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (317/1037) of languages using the Latin script
    First seen 2019-06-19
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
  • Full Fontbakery report
  • Salsa link

    Designer John Vargas Beltrán
    Subsets menu, latin
    Languages 11% (121/1037) of languages using the Latin script
    First seen 2011-10-12
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Sanchez link

    Designer Daniel Hernandez
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-10-31
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
  • Full Fontbakery report
  • Sancreek link

    Designer Vernon Adams
    Subsets menu, latin, latin-ext
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2011-10-12
    Last updated 2023-08-15 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Space and non-breaking space have the same width?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Sansation link

    Designer Bernd Montag
    Subsets menu, cyrillic, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-10-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Checking OS/2 fsType does not impose restrictions.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • ERROR: Does the font contain less than 150 CJK characters?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking file is named canonically.
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: Check font names are correct
    • FAIL: Font has all mandatory 'name' table entries?
    • FAIL: Space and non-breaking space have the same width?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Glyph names are all valid?
    • FAIL: Font contains unique glyph names?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Check code page character ranges
    • FAIL: Fonts have consistent underline thickness?
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
    • FAIL: Verify that family names in the name table are consistent across all fonts in the family. Checks Typographic Family name (nameID 16) if present, otherwise uses Font Family name (nameID 1)
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
    • FAIL: Does the font have any invalid feature tags?
    • FAIL: Does the font have any invalid language tags?
  • Full Fontbakery report
  • Sansita link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu
    Languages 28% (299/1037) of languages using the Latin script
    First seen 2016-12-04
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Sansita One link

    Designer Omnibus-Type
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-09-28
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Sansita Swashed link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 28% (293/1037) of languages using the Latin script
    First seen 2020-08-31
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Sarabun link

    Designer Suppakit Chalermlarp
    Subsets latin, latin-ext, menu, thai, vietnamese
    Languages 32% (341/1037) of languages using the Latin script
    First seen 2013-10-28
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Sarala link

    Designer Andres Torresi
    Subsets menu, devanagari, latin, latin-ext
    Languages
    • 11% (123/1037) of languages using the Latin script
    • 6% (5/78) of languages using the Devanagari script (Supports Maithili; Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2015-06-17
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Glyph names are all valid?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Sarina link

    Designer James Grieshaber
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Sarpanch link

    Designer Indian Type Foundry
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 3% (3/78) of languages using the Devanagari script (Supports Eastern Tamang; Dotyali; Goan Konkani)
    First seen 2014-09-03
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure indic fonts have the Indian Rupee Sign glyph.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Sassy Frass link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (319/1037) of languages using the Latin script
    First seen 2021-10-13
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Sawarabi Mincho link

    Designer mshio
    Subsets latin, latin-ext, japanese, menu
    Languages 26% (275/1037) of languages using the Latin script
    First seen 2018-05-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Scada link

    Designer Jovanny Lemonad
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu
    Languages
    • 23% (239/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    First seen 2012-07-30
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Scheherazade New link

    Designer SIL International
    Subsets arabic, latin, latin-ext, menu
    Languages
    • 10% (107/1037) of languages using the Latin script
    • 14% (12/81) of languages using the Arabic script
    First seen 2021-05-12
    Last updated 2023-04-19 (7 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Does the font have any invalid language tags?
  • Full Fontbakery report
  • Schibsted Grotesk link

    Designer Bakken & Bæck, Henrik Kongsvoll
    Subsets latin, latin-ext, menu
    Languages 30% (315/1037) of languages using the Latin script
    First seen 2023-03-03
    Last updated 2023-03-03 (8 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check font names are correct
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Scope One link

    Designer Dalton Maag
    Subsets latin, latin-ext, menu
    Languages 25% (262/1037) of languages using the Latin script
    First seen 2016-06-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Seaweed Script link

    Designer Neapolitan
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-02-29
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Secular One link

    Designer Michal Sahar
    Subsets hebrew, latin, latin-ext, menu
    Languages
    • 26% (276/1037) of languages using the Latin script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2016-06-20
    Last updated 2023-06-02 (5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Sedan link

    Designer Sebastian Salazar
    Subsets latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-10-31
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Sedan SC link

    Designer Sebastian Salazar
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-10-31
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Sedgwick Ave link

    Designer Pedro Vergani, Kevin Burke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 28% (299/1037) of languages using the Latin script
    First seen 2017-08-01
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Sedgwick Ave Display link

    Designer Pedro Vergani, Kevin Burke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 28% (299/1037) of languages using the Latin script
    First seen 2017-08-01
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Sen link

    Designer Kosal Sen
    Subsets latin, latin-ext, menu
    Languages 25% (268/1037) of languages using the Latin script
    First seen 2020-01-17
    Last updated 2023-07-05 (4 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check font names are correct
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Send Flowers link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (317/1037) of languages using the Latin script
    First seen 2022-03-11
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Sevillana link

    Designer Brownfox
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-02-22
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Is there a usable "kern" table declared in the font?
    • FAIL: Does the font have any invalid script tags?
  • Full Fontbakery report
  • Seymour One link

    Designer Vernon Adams
    Subsets cyrillic, latin, latin-ext, menu
    Languages
    • 26% (274/1037) of languages using the Latin script
    • 20% (16/78) of languages using the Cyrillic script
    First seen 2012-10-10
    Last updated 2023-08-31 (2 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
  • Full Fontbakery report
  • Shadows Into Light link

    Designer Kimberly Geswein
    Subsets menu, latin
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2011-06-08
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Shadows Into Light Two link

    Designer Kimberly Geswein
    Subsets menu, latin, latin-ext
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2012-02-22
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains unique glyph names?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Shalimar link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (319/1037) of languages using the Latin script
    First seen 2021-10-15
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Shantell Sans link

    Designer Shantell Martin, Arrow Type, Anya Danilova
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 31% (327/1037) of languages using the Latin script
    • 70% (55/78) of languages using the Cyrillic script
    First seen 2023-01-17
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: All tabular figures must have the same width across the RIBBI-family.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Validate METADATA.pb axes tags are defined in gf_axisregistry.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
    • FAIL: Ensure 'ital' STAT axis is last. (derived from com.google.fonts/check/italic_axis_last)
  • Full Fontbakery report
  • Shanti link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu
    Languages 26% (274/1037) of languages using the Latin script
    First seen 2011-05-11
    Last updated 2023-09-15 (2 months ago)
    • Version Version 1.100; ttfautohint (v1.8.4) moved to production on 2023-10-26 (26 days ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Share link

    Designer Carrois Apostrophe
    Subsets latin, latin-ext, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-02-08
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
  • Full Fontbakery report
  • Share Tech link

    Designer Carrois Apostrophe
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-10-31
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
  • Full Fontbakery report
  • Share Tech Mono link

    Designer Carrois Apostrophe
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-10-31
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Shippori Antique link

    Designer FONTDASU
    Subsets japanese, latin, latin-ext, menu
    Languages
    • 18% (193/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2021-04-14
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Shippori Antique B1 link

    Designer FONTDASU
    Subsets japanese, latin, latin-ext, menu
    Languages
    • 18% (193/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2021-04-14
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: Ensure files are not too large.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Shippori Mincho link

    Designer FONTDASU
    Subsets japanese, latin, latin-ext, menu
    Languages
    • 19% (198/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2021-01-04
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: Check family name for GF Guide compliance.
  • Full Fontbakery report
  • Shippori Mincho B1 link

    Designer FONTDASU
    Subsets japanese, latin, latin-ext, menu
    Languages
    • 19% (198/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2021-01-04
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure files are not too large.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: Check family name for GF Guide compliance.
  • Full Fontbakery report
  • Shizuru link

    Designer Shibuya Font
    Subsets japanese, latin, menu
    Languages
    • Defined language in metadata: ja_Kana
    • Defined language in metadata: ja_Hira
    • 10% (104/1037) of languages using the Latin script
    First seen 2020-12-08
    Last updated 2023-04-27 (6 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Shojumaru link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-01-25
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Checking correctness of monospaced metadata.
    • FAIL: MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?
  • Full Fontbakery report
  • Short Stack link

    Designer James Grieshaber
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-08-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Shrikhand link

    Designer Jonny Pinhorn
    Subsets gujarati, latin, latin-ext, menu
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2016-06-20
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Font styles are named canonically?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Siemreap link

    Designer Danh Hong
    Subsets menu, khmer
    Languages 100% (1/1) of languages using the Khmer script
    First seen 2011-04-20
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Ensure METADATA.pb lists all font binaries.
    • FAIL: Checking OS/2 fsType does not impose restrictions.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Font filenames match font.filename entries?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Are there unwanted Apple tables?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check font can render its own name.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Are there unwanted tables?
    • FAIL: Does the font have any invalid feature tags?
    • FAIL: Does the font have any invalid language tags?
  • Full Fontbakery report
  • Sigmar link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (302/1037) of languages using the Latin script
    First seen 2023-02-24
    Last updated 2023-08-15 (3 months ago)
    Latest releases

    Sigmar One link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (329/1037) of languages using the Latin script
    First seen 2011-05-04
    Last updated 2023-08-15 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Signika link

    Designer Anna Giedryś
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (330/1037) of languages using the Latin script
    First seen 2011-11-23
    Last updated 2023-06-29 (4 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Check font names are correct
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Signika Negative link

    Designer Anna Giedryś
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (322/1037) of languages using the Latin script
    First seen 2011-11-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Signika Negative SC link

    Designer Anna Giedryś
    Subsets latin, latin-ext, menu
    Languages 17% (186/1037) of languages using the Latin script
    First seen 2011-11-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Signika SC link

    Designer Anna Giedryś
    Subsets latin, latin-ext, menu, vietnamese
    Languages 17% (186/1037) of languages using the Latin script
    First seen 2011-11-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: Check variable font instances don't have duplicate names
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
    • FAIL: Validate VF axes match the ones declared on METADATA.pb.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: STAT table has Axis Value tables?
  • Full Fontbakery report
  • Silkscreen link

    Designer Jason Kottke
    Subsets latin, latin-ext, menu
    Languages 18% (189/1037) of languages using the Latin script
    First seen 2022-06-23
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • Full Fontbakery report
  • Simonetta link

    Designer Brownfox
    Subsets latin, latin-ext, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-04-04
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
    • FAIL: Does the font have any invalid script tags?
  • Full Fontbakery report
  • Single Day link

    Designer DXKorea Inc
    Subsets korean, menu
    Languages
    • 10% (105/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Korean script
    First seen 2018-02-23
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Font contains unique glyph names?
    • FAIL: Does full font name begin with the font family name?
  • Full Fontbakery report
  • Sintony link

    Designer Eduardo Rodriguez Tunni
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2013-02-27
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Sirin Stencil link

    Designer Cyreal
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-18
    Last updated 2023-08-09 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Sitara link

    Designer Neelakash Kshetrimayum
    Subsets menu, devanagari, latin, latin-ext
    Languages 6% (5/78) of languages using the Devanagari script (Supports Maithili; Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2015-06-10
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check font can render its own name.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Whitespace glyphs have ink?
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Six Caps link

    Designer Vernon Adams
    Subsets menu, latin
    Languages 10% (112/1037) of languages using the Latin script
    First seen 2011-02-16
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Space and non-breaking space have the same width?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Description strings in the name table must not contain copyright info.
    • FAIL: Is there a usable "kern" table declared in the font?
  • Full Fontbakery report
  • Sixtyfour link

    Designer Jens Kutílek
    Subsets latin, latin-ext, math, menu, symbols
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2023-11-02
    Last updated 2023-11-10 (11 days ago)
    • Version Version 2.000 moved to dev on 2023-11-16 (6 days ago)
    Latest releases
    • (3 years ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Shapes languages in all GF glyphsets.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
  • Full Fontbakery report
  • Skranji link

    Designer Neapolitan
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-08-21
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb: Copyright notice is the same in all fonts?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Slabo 13px link

    Designer John Hudson
    Subsets menu, latin, latin-ext
    Languages 25% (260/1037) of languages using the Latin script
    First seen 2014-05-30
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
  • Full Fontbakery report
  • Slabo 27px link

    Designer John Hudson
    Subsets menu, latin, latin-ext
    Languages 25% (260/1037) of languages using the Latin script
    First seen 2014-05-30
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Slackside One link

    Designer Maniackers Design
    Subsets japanese, latin, latin-ext, menu
    Languages
    • Defined language in metadata: ja_Kana
    • Defined language in metadata: ja_Hira
    • 19% (198/1037) of languages using the Latin script
    First seen 2020-12-14
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Smooch link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (319/1037) of languages using the Latin script
    First seen 2021-11-02
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Smooch Sans link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (319/1037) of languages using the Latin script
    First seen 2021-12-17
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Smythe link

    Designer Vernon Adams
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-04-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Sniglet link

    Designer Multiple Designers
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2010-12-15
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Font designer field in METADATA.pb must not contain 'Multiple designers'.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font has all mandatory 'name' table entries?
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
  • Full Fontbakery report
  • Snippet link

    Designer Gesine Todt
    Subsets menu, latin
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2011-07-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Snowburst One link

    Designer Annet Stirling
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-11-26
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Does the font have any invalid language tags?
  • Full Fontbakery report
  • Sofadi One link

    Designer Botjo Nikoltchev
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-09-30
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
  • Full Fontbakery report
  • Sofia link

    Designer LatinoType
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Sofia Sans link

    Designer Lettersoup, Botio Nikoltchev, Ani Petrova
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu
    Languages
    • 28% (296/1037) of languages using the Latin script
    • 37% (29/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2022-11-17
    Last updated 2023-01-12 (10 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Sofia Sans Condensed link

    Designer Lettersoup, Botio Nikoltchev, Ani Petrova
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu
    Languages
    • 28% (296/1037) of languages using the Latin script
    • 37% (29/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2022-11-17
    Last updated 2023-01-12 (10 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Sofia Sans Extra Condensed link

    Designer Lettersoup, Botio Nikoltchev, Ani Petrova
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu
    Languages
    • 28% (296/1037) of languages using the Latin script
    • 37% (29/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2022-11-17
    Last updated 2023-01-12 (10 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Sofia Sans Semi Condensed link

    Designer Lettersoup, Botio Nikoltchev, Ani Petrova
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu
    Languages
    • 28% (296/1037) of languages using the Latin script
    • 37% (29/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2022-11-17
    Last updated 2023-01-12 (10 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Solitreo link

    Designer Nathan Gross, Bryan Kirschen
    Subsets hebrew, latin, latin-ext, menu
    Languages
    • 25% (261/1037) of languages using the Latin script
    • 14% (1/7) of languages using the Hebrew script (Missing Judeo-Persian; Yiddish; Samaritan Aramaic; Judeo-Arabic; Hebrew; Chinese, Hebrew)
    First seen 2022-12-14
    Last updated 2022-12-15 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Solway link

    Designer Mariya Lish, The Northern Block
    Subsets latin, menu
    Languages 20% (209/1037) of languages using the Latin script
    First seen 2018-08-06
    Last updated 2023-02-01 (9 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Sometype Mono link

    Designer Ryoichi Tsunekawa
    Subsets latin, latin-ext, menu
    Languages 27% (285/1037) of languages using the Latin script
    First seen 2019-09-26
    Last updated 2023-09-20 (2 months ago)
    • Version Version 1.001 moved to production on 2023-10-20 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check font has a license.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Fonts have consistent underline thickness?
  • Full Fontbakery report
  • Song Myung link

    Designer JIKJI
    Subsets korean, menu
    Languages 10% (105/1037) of languages using the Latin script
    First seen 2018-02-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: Check METADATA.pb includes production subsets.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Does full font name begin with the font family name?
  • Full Fontbakery report
  • Sono link

    Designer Tyler Finck
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (308/1037) of languages using the Latin script
    First seen 2022-07-29
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Check font names are correct
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Checking correctness of monospaced metadata.
  • Full Fontbakery report
  • Sonsie One link

    Designer Riccardo De Franceschi
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-01-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Sora link

    Designer Jonathan Barnbrook, Julián Moncada
    Subsets latin, latin-ext, menu
    Languages 26% (271/1037) of languages using the Latin script
    First seen 2020-06-10
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Sorts Mill Goudy link

    Designer Barry Schwartz
    Subsets menu, latin, latin-ext
    Languages 24% (250/1037) of languages using the Latin script
    First seen 2011-09-07
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Source Code Pro link

    Designer Paul D. Hunt
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 32% (338/1037) of languages using the Latin script
    • 61% (48/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2012-09-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check for METADATA subsets with zero support.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Check glyphs do not have components which are themselves components.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: PostScript name follows OpenType specification requirements?
    • FAIL: Name table ID 6 (PostScript name) must be consistent across platforms.
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Source Sans 3 link

    Designer Paul D. Hunt
    Subsets cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 41% (428/1037) of languages using the Latin script
    • 67% (53/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2021-09-17
    Last updated 2023-09-19 (2 months ago)
    • Version Version 3.052;hotconv 1.1.0;makeotfexe 2.6.0 moved to production on 2023-10-26 (26 days ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking OS/2 fsSelection value.
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Source Serif 4 link

    Designer Frank Grießhammer
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu, vietnamese
    Languages
    • 31% (330/1037) of languages using the Latin script
    • 62% (49/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2021-11-16
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check font has a license.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Space Grotesk link

    Designer Florian Karsten
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (317/1037) of languages using the Latin script
    First seen 2020-10-07
    Last updated 2022-12-02 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Space Mono link

    Designer Colophon Foundry
    Subsets latin, latin-ext, menu, vietnamese
    Languages 12% (131/1037) of languages using the Latin script
    First seen 2016-06-20
    Last updated 2023-06-01 (5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Spectral link

    Designer Production Type
    Subsets cyrillic, latin, latin-ext, menu, vietnamese
    Languages
    • 30% (315/1037) of languages using the Latin script
    • 50% (39/78) of languages using the Cyrillic script
    First seen 2017-10-10
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Fonts have consistent underline thickness?
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Spectral SC link

    Designer Production Type
    Subsets cyrillic, latin, latin-ext, menu, vietnamese
    Languages
    • 50% (39/78) of languages using the Cyrillic script
    • 17% (184/1037) of languages using the Latin script
    First seen 2017-10-10
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Fonts have consistent underline thickness?
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Spicy Rice link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-12-13
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Spinnaker link

    Designer Elena Albertoni
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-09-28
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Spirax link

    Designer Brenda Gallo
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-11-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Splash link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (314/1037) of languages using the Latin script
    First seen 2022-05-19
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Spline Sans link

    Designer Eben Sorkin, Mirko Velimirović
    Subsets latin, latin-ext, menu
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2021-11-22
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Spline Sans Mono link

    Designer Eben Sorkin, Mirko Velimirović
    Subsets latin, latin-ext, menu
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2022-03-28
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Squada One link

    Designer Joe Prince
    Subsets menu, latin
    Languages 10% (106/1037) of languages using the Latin script
    First seen 2011-12-15
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Does METADATA.pb copyright field contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Square Peg link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (317/1037) of languages using the Latin script
    First seen 2022-03-24
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Sree Krushnadevaraya link

    Designer Purushoth Kumar Guttula
    Subsets menu, latin, telugu
    Languages 10% (104/1037) of languages using the Latin script
    First seen 2015-01-12
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: Check font names are correct
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Glyph names are all valid?
    • FAIL: Font contains unique glyph names?
    • FAIL: Ensure indic fonts have the Indian Rupee Sign glyph.
  • Full Fontbakery report
  • Sriracha link

    Designer Cadson Demak
    Subsets menu, latin, latin-ext, thai, vietnamese
    Languages 29% (311/1037) of languages using the Latin script
    First seen 2015-07-01
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
  • Full Fontbakery report
  • Srisakdi link

    Designer Cadson Demak
    Subsets latin, latin-ext, menu, thai, vietnamese
    Languages 32% (341/1037) of languages using the Latin script
    First seen 2018-08-22
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Staatliches link

    Designer Brian LaRossa, Erica Carras
    Subsets latin, latin-ext, menu
    Languages 25% (261/1037) of languages using the Latin script
    First seen 2018-12-10
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Stalemate link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-11-03
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Stalinist One link

    Designer Alexey Maslov, Jovanny Lemonad
    Subsets menu, cyrillic, latin, latin-ext
    Languages
    • 10% (107/1037) of languages using the Latin script
    • 1% (1/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic))
    First seen 2012-08-20
    Last updated 2023-08-15 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains unique glyph names?
  • Full Fontbakery report
  • Stardos Stencil link

    Designer Vernon Adams
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-07-06
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Stick link

    Designer Fontworks Inc.
    Subsets cyrillic, japanese, latin, latin-ext, menu
    Languages
    • 21% (220/1037) of languages using the Latin script
    • 10% (8/78) of languages using the Cyrillic script (Supports Moksha; Russian; Nogai; Crimean Turkish; Abaza; Erzya; Kumyk; Bulgarian)
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2020-12-15
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Stick No Bills link

    Designer Mooniak
    Subsets latin, latin-ext, menu, sinhala
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2021-06-29
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Stint Ultra Condensed link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-12-07
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Stint Ultra Expanded link

    Designer Astigmatic
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-02-15
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Stoke link

    Designer Nicole Fally
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-08-03
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font has all mandatory 'name' table entries?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Strait link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu
    Languages 26% (273/1037) of languages using the Latin script
    First seen 2012-10-26
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Strong link

    Designer Gaslight
    Subsets menu, cyrillic, cyrillic-ext, latin, latin-ext
    Languages
    • 10% (107/1037) of languages using the Latin script
    • 1% (1/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic))
    First seen 2012-05-09
    Last updated 2023-08-09 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Style Script link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 27% (283/1037) of languages using the Latin script
    First seen 2021-05-14
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Does the font have any invalid feature tags?
  • Full Fontbakery report
  • Stylish link

    Designer AsiaSoft Inc
    Subsets korean, menu
    Languages
    • 10% (105/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Korean script
    First seen 2018-02-27
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Ensure files are not too large.
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: Check METADATA.pb includes production subsets.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Font contains unique glyph names?
    • FAIL: Does full font name begin with the font family name?
  • Full Fontbakery report
  • Sue Ellen Francisco link

    Designer Kimberly Geswein
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-04-14
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Suez One link

    Designer Michal Sahar
    Subsets hebrew, latin, latin-ext, menu
    Languages
    • 26% (272/1037) of languages using the Latin script
    • 28% (2/7) of languages using the Hebrew script (Missing Judeo-Persian; Yiddish; Samaritan Aramaic; Judeo-Arabic; Chinese, Hebrew)
    First seen 2016-06-20
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
  • Full Fontbakery report
  • Sulphur Point link

    Designer Dale Sattler
    Subsets latin, latin-ext, menu
    Languages 24% (252/1037) of languages using the Latin script
    First seen 2019-09-25
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Sumana link

    Designer Cyreal
    Subsets menu, devanagari, latin, latin-ext
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 5% (4/78) of languages using the Devanagari script (Supports Maithili; Eastern Tamang; Dotyali; Goan Konkani)
    First seen 2015-04-29
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Glyph names are all valid?
    • FAIL: Font contains unique glyph names?
    • FAIL: Ensure indic fonts have the Indian Rupee Sign glyph.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Sunflower link

    Designer JIKJISOFT
    Subsets korean, menu
    Languages 10% (105/1037) of languages using the Latin script
    First seen 2018-02-27
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: Check METADATA.pb includes production subsets.
    • FAIL: METADATA.pb: According to Google Fonts standards, families should have a Regular style.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
  • Full Fontbakery report
  • Supermercado One link

    Designer James Grieshaber
    Subsets menu, latin
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-11-02
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Checking file is named canonically.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Sura link

    Designer Carolina Giovagnoli
    Subsets menu, devanagari, latin, latin-ext
    Languages
    • 10% (106/1037) of languages using the Latin script
    • 6% (5/78) of languages using the Devanagari script (Supports Maithili; Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2015-06-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Glyph names are all valid?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Suranna link

    Designer Purushoth Kumar Guttula
    Subsets menu, latin, telugu
    Languages 10% (104/1037) of languages using the Latin script
    First seen 2015-01-12
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: Check font names are correct
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Glyph names are all valid?
    • FAIL: Font contains unique glyph names?
    • FAIL: Ensure indic fonts have the Indian Rupee Sign glyph.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Suravaram link

    Designer Purushoth Kumar Guttula
    Subsets menu, latin, telugu
    Languages 10% (104/1037) of languages using the Latin script
    First seen 2015-01-12
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: Check font names are correct
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Glyph names are all valid?
    • FAIL: Font contains unique glyph names?
    • FAIL: Ensure indic fonts have the Indian Rupee Sign glyph.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Suwannaphum link

    Designer Danh Hong
    Subsets khmer, latin, menu
    Languages
    • 10% (104/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Khmer script
    First seen 2011-03-02
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Swanky and Moo Moo link

    Designer Kimberly Geswein
    Subsets menu, latin
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2011-04-27
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Syne link

    Designer Bonjour Monde, Lucas Descroix, George Triantafyllakos
    Subsets greek, latin, latin-ext, menu
    Languages
    • 26% (271/1037) of languages using the Latin script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2020-08-25
    Last updated 2023-08-16 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Syne Mono link

    Designer Bonjour Monde, Lucas Descroix
    Subsets latin, latin-ext, menu
    Languages 26% (270/1037) of languages using the Latin script
    First seen 2020-08-25
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
  • Full Fontbakery report
  • Syne Tactile link

    Designer Bonjour Monde, Lucas Descroix
    Subsets latin, latin-ext, menu
    Languages 26% (270/1037) of languages using the Latin script
    First seen 2020-08-25
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
  • Full Fontbakery report
  • Tai Heritage Pro link

    Designer SIL International
    Subsets latin, latin-ext, menu, tai-viet, vietnamese
    Languages
    • Defined language in metadata: blt_Tavt
    • 21% (226/1037) of languages using the Latin script
    First seen 2022-05-12
    Last updated 2023-05-23 (5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Description strings in the name table must not contain copyright info.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Tajawal link

    Designer Boutros Fonts
    Subsets arabic, latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2018-04-04
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: Check font names are correct
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains unique glyph names?
    • FAIL: Fonts have consistent underline thickness?
    • FAIL: Does full font name begin with the font family name?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Tangerine link

    Designer Toshi Omagari
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2010-06-08
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Tapestry link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (317/1037) of languages using the Latin script
    First seen 2022-04-07
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Taprom link

    Designer Danh Hong
    Subsets khmer, latin, menu
    Languages
    • 10% (104/1037) of languages using the Latin script
    • 100% (1/1) of languages using the Khmer script
    First seen 2011-03-02
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Tauri link

    Designer Yvonne Schüttler
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2013-02-27
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Taviraj link

    Designer Cadson Demak
    Subsets latin, latin-ext, menu, thai, vietnamese
    Languages 29% (310/1037) of languages using the Latin script
    First seen 2016-06-20
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Teko link

    Designer Indian Type Foundry
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (112/1037) of languages using the Latin script
    • 5% (4/78) of languages using the Devanagari script (Supports Eastern Tamang; Kangri; Dotyali; Goan Konkani)
    First seen 2014-06-25
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Check font names are correct
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Tektur link

    Designer Adam Jagosz
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu, vietnamese
    Languages
    • 54% (564/1037) of languages using the Latin script
    • 70% (55/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2023-06-16
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Telex link

    Designer Huerta Tipográfica
    Subsets latin, latin-ext, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-18
    Last updated 2022-11-16 (1 year, 5 days ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Tenali Ramakrishna link

    Designer Appaji Ambarisha Darbha
    Subsets menu, latin, telugu
    Languages 10% (104/1037) of languages using the Latin script
    First seen 2014-12-10
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: Check font names are correct
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Tenor Sans link

    Designer Denis Masharov
    Subsets menu, cyrillic, latin, latin-ext
    Languages
    • 10% (113/1037) of languages using the Latin script
    • 1% (1/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic))
    First seen 2011-05-25
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Is this a proper HTML snippet?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Text Me One link

    Designer Julia Petretta
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-10-31
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Texturina link

    Designer Guillermo Torres, Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 33% (346/1037) of languages using the Latin script
    First seen 2020-10-23
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Thabit link

    Designer Khaled Hosny
    Subsets menu, arabic, latin
    Languages 10% (111/1037) of languages using the Latin script
    First seen 2010-09-21
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name value matches fullname declared on the name table?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check METADATA.pb font weights are correct.
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.style "italic" matches font internals?
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Each font in a family must have the same set of vertical metrics values.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Checking correctness of monospaced metadata.
    • FAIL: PostScript name follows OpenType specification requirements?
  • Full Fontbakery report
  • Thasadith link

    Designer Cadson Demak
    Subsets latin, latin-ext, menu, thai, vietnamese
    Languages 32% (341/1037) of languages using the Latin script
    First seen 2018-08-22
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • The Girl Next Door link

    Designer Kimberly Geswein
    Subsets menu, latin
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2011-04-20
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • The Nautigal link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2021-11-18
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Tienne link

    Designer Vernon Adams
    Subsets latin, menu
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2011-07-27
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Tillana link

    Designer Indian Type Foundry
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (112/1037) of languages using the Latin script
    • 5% (4/78) of languages using the Devanagari script (Supports Eastern Tamang; Kangri; Dotyali; Goan Konkani)
    First seen 2015-06-03
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Tilt Neon link

    Designer Andy Clymer
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (326/1037) of languages using the Latin script
    First seen 2022-12-02
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Validate METADATA.pb axes tags are defined in gf_axisregistry.
  • Full Fontbakery report
  • Tilt Prism link

    Designer Andy Clymer
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (325/1037) of languages using the Latin script
    First seen 2022-12-02
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Validate METADATA.pb axes tags are defined in gf_axisregistry.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Tilt Warp link

    Designer Andy Clymer
    Subsets latin, latin-ext, menu, vietnamese
    Languages 27% (286/1037) of languages using the Latin script
    First seen 2022-12-02
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
  • Full Fontbakery report
  • Timmana link

    Designer Appaji Ambarisha Darbha
    Subsets menu, latin, telugu
    Languages 10% (104/1037) of languages using the Latin script
    First seen 2015-01-12
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Stricter unitsPerEm criteria for Google Fonts.
    • FAIL: Check font names are correct
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font has **proper** whitespace glyph names?
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Tiro Bangla link

    Designer Tiro Typeworks, John Hudson, Fiona Ross, Neelakash Kshetrimayum
    Subsets bengali, latin, latin-ext, menu
    Languages
    • 22% (229/1037) of languages using the Latin script
    • 23% (4/17) of languages using the Bangla script (Supports Assamese; Bengali; Bishnupriya; Rangpuri)
    First seen 2022-03-30
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Tiro Devanagari Hindi link

    Designer Tiro Typeworks, John Hudson, Fiona Ross, Paul Hanslow
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 22% (229/1037) of languages using the Latin script
    • 6% (5/78) of languages using the Devanagari script (Supports Maithili; Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2022-03-30
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
  • Full Fontbakery report
  • Tiro Devanagari Marathi link

    Designer Tiro Typeworks, John Hudson, Fiona Ross, Paul Hanslow
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 22% (229/1037) of languages using the Latin script
    • 5% (4/78) of languages using the Devanagari script (Supports Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2022-03-30
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
  • Full Fontbakery report
  • Tiro Devanagari Sanskrit link

    Designer Tiro Typeworks, John Hudson, Fiona Ross, Paul Hanslow
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 22% (229/1037) of languages using the Latin script
    • 5% (4/78) of languages using the Devanagari script (Supports Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2022-03-30
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
  • Full Fontbakery report
  • Tiro Gurmukhi link

    Designer Tiro Typeworks, John Hudson, Fiona Ross, Paul Hanslow
    Subsets gurmukhi, latin, latin-ext, menu
    Languages 22% (229/1037) of languages using the Latin script
    First seen 2022-03-30
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Tiro Kannada link

    Designer Tiro Typeworks, John Hudson, Fiona Ross, Kaja Słojewska
    Subsets kannada, latin, latin-ext, menu
    Languages 22% (229/1037) of languages using the Latin script
    First seen 2022-03-30
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Tiro Tamil link

    Designer Tiro Typeworks, Fernando Mello, Fiona Ross, Kaja Słojewska
    Subsets latin, latin-ext, menu, tamil
    Languages
    • 22% (229/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Tamil script (Missing Badaga)
    First seen 2022-03-30
    Last updated 2023-04-20 (7 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Tiro Telugu link

    Designer Tiro Typeworks, John Hudson, Fiona Ross, Kaja Słojewska
    Subsets latin, latin-ext, menu, telugu
    Languages 22% (229/1037) of languages using the Latin script
    First seen 2022-03-30
    Last updated 2023-01-12 (10 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Titan One link

    Designer Rodrigo Fuenzalida
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-01-11
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Titillium Web link

    Designer Accademia di Belle Arti di Urbino
    Subsets latin, latin-ext, menu
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-10-01
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Fonts have consistent underline thickness?
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Tomorrow link

    Designer Tony de Marco, Monica Rizzolli
    Subsets latin, latin-ext, menu
    Languages 28% (292/1037) of languages using the Latin script
    First seen 2019-10-02
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Tourney link

    Designer Tyler Finck, ETC
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (332/1037) of languages using the Latin script
    First seen 2021-04-29
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Trade Winds link

    Designer Sideshow
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Train One link

    Designer Fontworks Inc.
    Subsets cyrillic, japanese, latin, latin-ext, menu
    Languages
    • 21% (220/1037) of languages using the Latin script
    • 10% (8/78) of languages using the Cyrillic script (Supports Moksha; Russian; Nogai; Crimean Turkish; Abaza; Erzya; Kumyk; Bulgarian)
    First seen 2020-12-15
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Trirong link

    Designer Cadson Demak
    Subsets latin, latin-ext, menu, thai, vietnamese
    Languages 29% (310/1037) of languages using the Latin script
    First seen 2016-06-20
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
  • Full Fontbakery report
  • Trispace link

    Designer Tyler Finck, ETC
    Subsets latin, latin-ext, menu, vietnamese
    Languages 31% (322/1037) of languages using the Latin script
    First seen 2020-09-25
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
  • Full Fontbakery report
  • Trocchi link

    Designer Vernon Adams
    Subsets latin, latin-ext, menu
    Languages 26% (271/1037) of languages using the Latin script
    First seen 2012-04-04
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Trochut link

    Designer Andreu Balius
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-01-18
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Truculenta link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 28% (300/1037) of languages using the Latin script
    First seen 2020-12-16
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Trykker link

    Designer Magnus Gaarde
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Tsukimi Rounded link

    Designer Takashi Funayama
    Subsets japanese, latin, latin-ext, menu
    Languages
    • Defined language in metadata: ja_Kana
    • Defined language in metadata: ja_Hira
    • 18% (195/1037) of languages using the Latin script
    First seen 2020-12-14
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check family name for GF Guide compliance.
  • Full Fontbakery report
  • Tuffy link

    Designer Thatcher Ulrich
    Subsets menu, cyrillic, cyrillic-ext, greek, greek-ext, latin, latin-ext
    Languages
    • 26% (274/1037) of languages using the Latin script
    • 74% (58/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2012-05-09
    Last updated 2023-08-09 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check for METADATA subsets with zero support.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check font names are correct
    • FAIL: Checking file is named canonically.
    • FAIL: Checking OS/2 fsType does not impose restrictions.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Font contains glyphs for whitespace characters?
    • FAIL: Are there unwanted tables?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Fonts have consistent underline thickness?
    • FAIL: Check name table IDs 1, 2, 16, 17 to conform to Italic style.
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Tulpen One link

    Designer Naima Ben Ayed
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-08-03
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Turret Road link

    Designer Dale Sattler
    Subsets latin, latin-ext, menu
    Languages 25% (267/1037) of languages using the Latin script
    First seen 2019-09-03
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Twinkle Star link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (305/1037) of languages using the Latin script
    First seen 2021-11-26
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Uchen link

    Designer Christopher J. Fynn
    Subsets latin, menu, tibetan
    Languages
    • 17% (186/1037) of languages using the Latin script
    • 16% (1/6) of languages using the Tibetan script (Missing Western Tamang, Tibetan; Dzongkha; Balti, Tibetan; Tibetan; Tshangla)
    First seen 2019-12-07
    Last updated 2023-08-15 (3 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Substitute copyright, registered and trademark symbols in name table entries.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Are there non-ASCII characters in ASCII-only NAME table entries?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table entries should not contain line-breaks.
  • Full Fontbakery report
  • Unbounded link

    Designer NaN
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 49% (514/1037) of languages using the Latin script
    • 26% (21/78) of languages using the Cyrillic script
    First seen 2022-11-07
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check font names are correct
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Uncial Antiqua link

    Designer Astigmatic
    Subsets menu, latin
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Underdog link

    Designer Sergey Steblina, Jovanny Lemonad
    Subsets menu, cyrillic, latin, latin-ext
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 1% (1/78) of languages using the Cyrillic script (Supports Bosnian (Cyrillic))
    First seen 2012-09-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Unica One link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (336/1037) of languages using the Latin script
    First seen 2012-10-26
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • UnifrakturCook link

    Designer j. 'mach' wust
    Subsets menu, latin
    Languages 19% (198/1037) of languages using the Latin script
    First seen 2010-12-07
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb: According to Google Fonts standards, families should have a Regular style.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • UnifrakturMaguntia link

    Designer j. 'mach' wust
    Subsets menu, latin
    Languages 19% (198/1037) of languages using the Latin script
    First seen 2010-11-30
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Name table strings must not contain the string 'Reserved Font Name'.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Unlock link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu
    Languages 26% (273/1037) of languages using the Latin script
    First seen 2011-11-30
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
  • Full Fontbakery report
  • Unna link

    Designer Omnibus-Type
    Subsets latin, latin-ext, menu
    Languages 10% (110/1037) of languages using the Latin script
    First seen 2011-07-20
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Name table records must not have trailing spaces.
  • Full Fontbakery report
  • Updock link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (316/1037) of languages using the Latin script
    First seen 2022-03-24
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Urbanist link

    Designer Corey Hu
    Subsets latin, latin-ext, menu
    Languages 27% (285/1037) of languages using the Latin script
    First seen 2021-06-02
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • VT323 link

    Designer Peter Hull
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (302/1037) of languages using the Latin script
    First seen 2011-03-02
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Checking correctness of monospaced metadata.
  • Full Fontbakery report
  • Vampiro One link

    Designer Riccardo De Franceschi
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-11-26
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
  • Full Fontbakery report
  • Varela link

    Designer Joe Prince
    Subsets menu, latin, latin-ext, vietnamese
    Languages 10% (111/1037) of languages using the Latin script
    First seen 2011-06-29
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Varela Round link

    Designer Joe Prince
    Subsets hebrew, latin, latin-ext, menu, vietnamese
    Languages
    • 32% (336/1037) of languages using the Latin script
    • 42% (3/7) of languages using the Hebrew script (Missing Chinese, Hebrew; Samaritan Aramaic; Judeo-Arabic; Yiddish)
    First seen 2011-07-13
    Last updated 2023-01-23 (9 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
  • Full Fontbakery report
  • Varta link

    Designer Joana Correia, Viktoriya Grabowska, Eben Sorkin
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (336/1037) of languages using the Latin script
    First seen 2020-06-11
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Vast Shadow link

    Designer Nicole Fally
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-10-12
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Vazirmatn link

    Designer Saber Rastikerdar
    Subsets arabic, latin, latin-ext, menu
    Languages
    • 15% (156/1037) of languages using the Latin script
    • 4% (4/81) of languages using the Arabic script (Supports Urdu; Central Kurdish; Punjabi (Arabic); Uyghur)
    First seen 2022-03-16
    Last updated 2022-07-07 (1 year, 4 months ago)
    Latest releases
    • (1 year, 4 months ago)
    • (1 year, 5 months ago)
    • (1 year, 5 months ago)
    • (1 year, 5 months ago)
    • (1 year, 7 months ago)
    • (1 year, 8 months ago)
    • (1 year, 8 months ago)
    • (1 year, 8 months ago)
    • (2 years ago)
    • (2 years ago)
    • (2 years ago)
    • (2 years ago)
    • (2 years ago)
    • (2 years ago)
    • (2 years ago)
    • (2 years ago)
    • (2 years ago)
    • (2 years ago)
    • (2 years ago)
    • (2 years ago)
    • (2 years ago)
    • (2 years ago)
    • (2 years ago)
    • (3 years ago)
    • (3 years ago)
    • (3 years ago)
    • (3 years ago)
    • (3 years ago)
    • (3 years ago)
    • (3 years ago)
    • (3 years ago)
    • (3 years ago)
    • (3 years ago)
    • (3 years ago)
    • (3 years ago)
    • (4 years ago)
    • (4 years ago)
    • (4 years ago)
    • (4 years ago)
    • (4 years ago)
    • (4 years ago)
    • (4 years ago)
    • (4 years ago)
    • (4 years ago)
    • (4 years ago)
    • (5 years ago)
    • (5 years ago)
    • (5 years ago)
    • (5 years ago)
    • (5 years ago)
    • (5 years ago)
    • (5 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (6 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    • (7 years ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: All tabular figures must have the same width across the RIBBI-family.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
    • FAIL: Font contains '.notdef' as its first glyph?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking correctness of monospaced metadata.
    • FAIL: MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Vesper Libre link

    Designer Mota Italic
    Subsets menu, devanagari, latin, latin-ext
    Languages
    • 10% (109/1037) of languages using the Latin script
    • 6% (5/78) of languages using the Devanagari script (Supports Maithili; Eastern Tamang; Dotyali; Goan Konkani; Awadhi)
    First seen 2014-07-14
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Check glyphs do not have duplicate components which have the same x,y coordinates.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Viaoda Libre link

    Designer Gydient, ViệtAnh Nguyễn
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 29% (306/1037) of languages using the Latin script
    • 60% (47/78) of languages using the Cyrillic script
    First seen 2019-11-05
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Does the font have any invalid language tags?
  • Full Fontbakery report
  • Vibes link

    Designer AbdElmomen Kadhim (blueMix)
    Subsets arabic, latin, menu
    Languages 18% (195/1037) of languages using the Latin script
    First seen 2019-04-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Check if each glyph has the recommended amount of contours.
  • Full Fontbakery report
  • Vibur link

    Designer Johan Kallas
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2010-12-15
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking correctness of monospaced metadata.
    • FAIL: MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?
    • FAIL: Is there a usable "kern" table declared in the font?
  • Full Fontbakery report
  • Victor Mono link

    Designer Rune Bjørnerås
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu, vietnamese
    Languages
    • 30% (315/1037) of languages using the Latin script
    • 83% (65/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2023-06-21
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Check font names are correct
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Vidaloka link

    Designer Cyreal
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-08-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Glyph names are all valid?
    • FAIL: Font contains unique glyph names?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check glyphs do not have duplicate components which have the same x,y coordinates.
  • Full Fontbakery report
  • Viga link

    Designer Fontstage
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-12-07
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check font names are correct
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Vina Sans link

    Designer Nguyen Type
    Subsets latin, latin-ext, menu, vietnamese
    Languages 28% (298/1037) of languages using the Latin script
    First seen 2023-03-16
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Voces link

    Designer Ana Paula Megda, Pablo Ugerman
    Subsets latin, latin-ext, menu
    Languages 22% (230/1037) of languages using the Latin script
    First seen 2012-02-22
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Volkhov link

    Designer Cyreal
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-08-17
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb: Copyright notice is the same in all fonts?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Checking post.italicAngle value. (derived from com.google.fonts/check/italic_angle)
  • Full Fontbakery report
  • Vollkorn link

    Designer Friedrich Althausen
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu, vietnamese
    Languages
    • 31% (327/1037) of languages using the Latin script
    • 82% (64/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2010-09-08
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Vollkorn SC link

    Designer Friedrich Althausen
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 31% (328/1037) of languages using the Latin script
    • 82% (64/78) of languages using the Cyrillic script
    First seen 2017-09-08
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Fonts have consistent underline thickness?
  • Full Fontbakery report
  • Voltaire link

    Designer Yvonne Schüttler
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2011-08-17
    Last updated 2023-08-15 (3 months ago)
    Latest releases

    Vujahday Script link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (315/1037) of languages using the Latin script
    First seen 2021-11-18
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Waiting for the Sunrise link

    Designer Kimberly Geswein
    Subsets menu, latin
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2011-04-14
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Check METADATA.pb font weights are correct.
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains unique glyph names?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Checking font version fields (head and name table).
  • Full Fontbakery report
  • Wallpoet link

    Designer Lars Berggren
    Subsets menu, latin
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-04-27
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Description strings in the name table must not contain copyright info.
  • Full Fontbakery report
  • Warnes link

    Designer Eduardo Tunni
    Subsets latin, latin-ext, menu
    Languages 26% (273/1037) of languages using the Latin script
    First seen 2012-09-07
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Water Brush link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (316/1037) of languages using the Latin script
    First seen 2022-04-07
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • Waterfall link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 29% (306/1037) of languages using the Latin script
    First seen 2021-11-18
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Wavefont link

    Designer Dmitry Ivanov
    Subsets menu
    Languages 25% (269/1037) of languages using the Latin script
    First seen 2023-06-16
    Last updated 2023-11-20 (a day ago)
    • Version Version 3.005;gftools[0.9.33] moved to production on 2023-10-26 (26 days ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Validate defaults on fvar table match registered fallback names in GFAxisRegistry.
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
    • FAIL: Checking OS/2 usWinAscent & usWinDescent.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Wellfleet link

    Designer Riccardo De Franceschi
    Subsets menu, latin, latin-ext
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2012-01-11
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does font file include unacceptable control character glyphs?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
  • Full Fontbakery report
  • Wendy One link

    Designer Alejandro Inler
    Subsets menu, latin, latin-ext
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2012-12-05
    Last updated 2023-08-15 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Version format is correct in 'name' table?
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
  • Full Fontbakery report
  • Whisper link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 30% (318/1037) of languages using the Latin script
    First seen 2022-03-24
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
  • Full Fontbakery report
  • WindSong link

    Designer Robert Leuschke
    Subsets latin, latin-ext, menu, vietnamese
    Languages 26% (274/1037) of languages using the Latin script
    First seen 2021-05-28
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Wire One link

    Designer Cyreal
    Subsets latin, menu
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2011-05-18
    Last updated 2023-08-09 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Wix Madefor Display link

    Designer Dalton Maag
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 25% (265/1037) of languages using the Latin script
    • 17% (14/78) of languages using the Cyrillic script
    First seen 2023-02-06
    Last updated 2023-08-29 (2 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Work Sans link

    Designer Wei Huang
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (337/1037) of languages using the Latin script
    First seen 2015-07-08
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Validates that when an instance record is included for the default instance, its subfamilyNameID value is set to a name ID whose string is equal to the string of either name ID 2 or 17, and its postScriptNameID value is set to a name ID whose string is equal to the string of name ID 6.
  • Full Fontbakery report
  • Workbench link

    Designer Jens Kutílek
    Subsets latin, math, menu, symbols
    Languages 10% (107/1037) of languages using the Latin script
    First seen 2023-11-02
    Last updated 2023-11-10 (11 days ago)
    • Version Version 2.000 moved to dev on 2023-11-16 (6 days ago)
    Latest releases
    • (3 years ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Shapes languages in all GF glyphsets.
    • FAIL: Check a font's STAT table contains compulsory Axis Values.
    • FAIL: Check variable font instances
    • FAIL: Check font follows the Google Fonts vertical metric schema
    • FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
  • Full Fontbakery report
  • Xanh Mono link

    Designer Yellow Type, Lâm Bảo, Duy Dao
    Subsets latin, latin-ext, menu, vietnamese
    Languages 26% (279/1037) of languages using the Latin script
    First seen 2020-08-11
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Yaldevi link

    Designer Mooniak
    Subsets latin, latin-ext, menu, sinhala
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2021-06-28
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Yaldevi Colombo link

    Designer Mooniak
    Subsets latin, latin-ext, menu, sinhala
    Languages 10% (109/1037) of languages using the Latin script
    First seen 2017-02-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check OFL body text is correct.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: Check font names are correct
    • FAIL: Font has all mandatory 'name' table entries?
    • FAIL: Name table records must not have trailing spaces.
    • FAIL: Are there unwanted tables?
    • FAIL: Space and non-breaking space have the same width?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Verify that family names in the name table are consistent across all fonts in the family. Checks Typographic Family name (nameID 16) if present, otherwise uses Font Family name (nameID 1)
  • Full Fontbakery report
  • Yanone Kaffeesatz link

    Designer Yanone, Cyreal
    Subsets cyrillic, latin, latin-ext, menu, vietnamese
    Languages
    • 15% (159/1037) of languages using the Latin script
    • 6% (5/78) of languages using the Cyrillic script (Supports Nogai; Macedonian; Bosnian (Cyrillic); Serbian; Bulgarian)
    First seen 2010-05-11
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font contains '.notdef' as its first glyph?
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Yantramanav link

    Designer Erin McLaughlin
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (112/1037) of languages using the Latin script
    • 8% (7/78) of languages using the Devanagari script (Supports Bhojpuri; Eastern Tamang; Dotyali; Magahi; Goan Konkani; Kangri; Awadhi)
    First seen 2015-06-03
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check if each glyph has the recommended amount of contours.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Yatra One link

    Designer Catherine Leigh Schmidt
    Subsets devanagari, latin, latin-ext, menu
    Languages
    • 10% (112/1037) of languages using the Latin script
    • 6% (5/78) of languages using the Devanagari script (Supports Eastern Tamang; Dotyali; Kangri; Goan Konkani; Awadhi)
    First seen 2016-06-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Space and non-breaking space have the same width?
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Yeon Sung link

    Designer Woowahan brothers
    Subsets korean, latin, menu
    Languages
    First seen 2018-02-23
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: DESCRIPTION.en_us.html must have more than 200 bytes.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check font can render its own name.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Font contains glyphs for whitespace characters?
  • Full Fontbakery report
  • Yeseva One link

    Designer Jovanny Lemonad
    Subsets cyrillic, cyrillic-ext, latin, latin-ext, menu, vietnamese
    Languages
    • 28% (295/1037) of languages using the Latin script
    • 66% (52/78) of languages using the Cyrillic script
    First seen 2011-07-13
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Yesteryear link

    Designer Astigmatic
    Subsets menu, latin
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2011-12-19
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Ensure METADATA.pb does not use escaped strings.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Yinmar link

    Designer Danh Hong
    Subsets menu, myanmar
    Languages
    First seen 2016-02-03
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: METADATA.pb should contain at least "menu" and "latin" subsets.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Are there unwanted Apple tables?
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check font can render its own name.
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Check if OS/2 xAvgCharWidth is correct.
    • FAIL: Ensure dotted circle glyph is present and can attach marks.
  • Full Fontbakery report
  • Yomogi link

    Designer Satsuyako
    Subsets cyrillic, japanese, latin, latin-ext, menu, vietnamese
    Languages
    • 32% (338/1037) of languages using the Latin script
    • 16% (13/78) of languages using the Cyrillic script
    First seen 2021-04-14
    Last updated 2023-10-02 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Checking correctness of monospaced metadata.
  • Full Fontbakery report
  • Young Serif link

    Designer Bastien Sozeau
    Subsets latin, latin-ext, menu
    Languages 30% (313/1037) of languages using the Latin script
    First seen 2023-08-30
    Last updated 2023-08-30 (2 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits

    Yrsa link

    Designer Rosetta, Anna Giedryś, David Březina
    Subsets latin, latin-ext, menu, vietnamese
    Languages 32% (340/1037) of languages using the Latin script
    First seen 2016-06-20
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • ERROR: Check name ID 25 to end with "Italic" for Italic VFs.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • Full Fontbakery report
  • Ysabeau link

    Designer Christian Thalmann
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu, vietnamese
    Languages
    • 31% (330/1037) of languages using the Latin script
    • 82% (64/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2023-03-16
    Last updated 2023-03-16 (8 months ago)
    Latest releases
    Failing tests
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Ysabeau Infant link

    Designer Christian Thalmann
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu, vietnamese
    Languages
    • 82% (64/78) of languages using the Cyrillic script
    • 18% (193/1037) of languages using the Latin script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2023-06-14
    Last updated 2023-06-14 (5 months ago)
    Latest releases
    Failing tests
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Ysabeau Office link

    Designer Christian Thalmann
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu, vietnamese
    Languages
    • 33% (350/1037) of languages using the Latin script
    • 82% (64/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2023-06-14
    Last updated 2023-06-14 (5 months ago)
    Latest releases
    Failing tests
    • ERROR: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Ysabeau SC link

    Designer Christian Thalmann
    Subsets cyrillic, cyrillic-ext, greek, latin, latin-ext, menu, vietnamese
    Languages
    • 33% (350/1037) of languages using the Latin script
    • 82% (64/78) of languages using the Cyrillic script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    First seen 2023-06-14
    Last updated 2023-06-14 (5 months ago)
    Latest releases
    Failing tests
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • Yuji Boku link

    Designer Kinuta Font Factory
    Subsets cyrillic, japanese, latin, latin-ext, menu
    Languages
    • 12% (128/1037) of languages using the Latin script
    • 15% (12/78) of languages using the Cyrillic script
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2021-09-27
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Yuji Hentaigana Akari link

    Designer Kinuta Font Factory
    Subsets japanese, latin, latin-ext, menu
    Languages
    • Defined language in metadata: ja_Kana
    • Defined language in metadata: ja_Hira
    • 12% (128/1037) of languages using the Latin script
    First seen 2021-06-10
    Last updated 2023-04-27 (6 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check samples can be rendered.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
  • Full Fontbakery report
  • Yuji Hentaigana Akebono link

    Designer Kinuta Font Factory
    Subsets japanese, latin, latin-ext, menu
    Languages
    • Defined language in metadata: ja_Kana
    • Defined language in metadata: ja_Hira
    • 12% (128/1037) of languages using the Latin script
    First seen 2021-06-10
    Last updated 2023-04-27 (6 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Check samples can be rendered.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
  • Full Fontbakery report
  • Yuji Mai link

    Designer Kinuta Font Factory
    Subsets cyrillic, japanese, latin, latin-ext, menu
    Languages
    • 12% (128/1037) of languages using the Latin script
    • 15% (12/78) of languages using the Cyrillic script
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2021-09-27
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Yuji Syuku link

    Designer Kinuta Font Factory
    Subsets cyrillic, japanese, latin, latin-ext, menu
    Languages
    • 12% (128/1037) of languages using the Latin script
    • 15% (12/78) of languages using the Cyrillic script
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2021-09-27
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
  • Full Fontbakery report
  • Yusei Magic link

    Designer Tanukizamurai
    Subsets japanese, latin, latin-ext, menu
    Languages
    • 21% (227/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2020-12-14
    Last updated 2022-05-23 (1 year, 5 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
    • FAIL: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
  • Full Fontbakery report
  • ZCOOL KuaiLe link

    Designer Liu Bingke, Yang Kang, Wu Shaojie
    Subsets chinese-simplified, latin, menu
    Languages
    • 10% (105/1037) of languages using the Latin script
    • 10% (1/10) of languages using the Simplified Han script (Missing Wu Chinese; Zhuang, Simplified Han; Chinese, Jinyu; Min Nan Chinese; Literary Chinese; Xiang Chinese; Gan Chinese; Cantonese (Simplified); Hakka Chinese)
    First seen 2018-12-05
    Last updated 2022-10-20 (1 year, 1 month ago)
    Latest releases
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: Check font follows the Google Fonts CJK vertical metric schema
  • Full Fontbakery report
  • ZCOOL QingKe HuangYou link

    Designer Zheng Qingke
    Subsets chinese-simplified, latin, menu
    Languages
    • 10% (105/1037) of languages using the Latin script
    • 10% (1/10) of languages using the Simplified Han script (Missing Wu Chinese; Zhuang, Simplified Han; Chinese, Jinyu; Min Nan Chinese; Literary Chinese; Xiang Chinese; Gan Chinese; Cantonese (Simplified); Hakka Chinese)
    First seen 2018-12-05
    Last updated 2022-10-20 (1 year, 1 month ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: Check font follows the Google Fonts CJK vertical metric schema
  • Full Fontbakery report
  • ZCOOL XiaoWei link

    Designer Li Dawei
    Subsets chinese-simplified, latin, menu
    Languages
    • 10% (105/1037) of languages using the Latin script
    • 10% (1/10) of languages using the Simplified Han script (Missing Wu Chinese; Zhuang, Simplified Han; Chinese, Jinyu; Min Nan Chinese; Literary Chinese; Xiang Chinese; Gan Chinese; Cantonese (Simplified); Hakka Chinese)
    First seen 2018-12-05
    Last updated 2022-10-20 (1 year, 1 month ago)
    Latest releases
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Checks METADATA.pb font.name field matches family name declared on the name table.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check font names are correct
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check family name for GF Guide compliance.
    • FAIL: Check font follows the Google Fonts CJK vertical metric schema
  • Full Fontbakery report
  • Zen Antique link

    Designer Yoshimichi Ohira
    Subsets cyrillic, greek, japanese, latin, latin-ext, menu
    Languages
    • 19% (204/1037) of languages using the Latin script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2021-10-22
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Zen Antique Soft link

    Designer Yoshimichi Ohira
    Subsets cyrillic, greek, japanese, latin, latin-ext, menu
    Languages
    • 19% (204/1037) of languages using the Latin script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2021-10-22
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Zen Dots link

    Designer Yoshimichi Ohira
    Subsets latin, latin-ext, menu
    Languages 20% (208/1037) of languages using the Latin script
    First seen 2021-03-12
    Last updated 2023-08-15 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Zen Kaku Gothic Antique link

    Designer Yoshimichi Ohira
    Subsets cyrillic, japanese, latin, latin-ext, menu
    Languages
    • 19% (204/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2021-10-22
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Zen Kaku Gothic New link

    Designer Yoshimichi Ohira
    Subsets cyrillic, japanese, latin, latin-ext, menu
    Languages
    • 19% (204/1037) of languages using the Latin script
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2021-10-22
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Zen Kurenaido link

    Designer Yoshimichi Ohira
    Subsets cyrillic, greek, japanese, latin, latin-ext, menu
    Languages
    • 19% (205/1037) of languages using the Latin script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2021-10-22
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Zen Loop link

    Designer Yoshimichi Ohira
    Subsets latin, latin-ext, menu
    Languages 20% (208/1037) of languages using the Latin script
    First seen 2021-03-10
    Last updated 2023-08-16 (3 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Zen Maru Gothic link

    Designer Yoshimichi Ohira
    Subsets cyrillic, greek, japanese, latin, latin-ext, menu
    Languages
    • 19% (204/1037) of languages using the Latin script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2021-10-22
    Last updated 2023-09-27 (a month ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Zen Old Mincho link

    Designer Yoshimichi Ohira
    Subsets cyrillic, greek, japanese, latin, latin-ext, menu
    Languages
    • 19% (204/1037) of languages using the Latin script
    • 16% (1/6) of languages using the Greek script (Missing Balkan Gagauz Turkish; Pontic, Greek; Ancient Greek, Greek; Coptic, Greek; Tsakonian)
    • 50% (1/2) of languages using the Japanese script (Missing Central Okinawan, Japanese)
    First seen 2021-10-22
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Font enables smart dropout control in "prep" table instructions?
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Zen Tokyo Zoo link

    Designer Yoshimichi Ohira
    Subsets latin, latin-ext, menu
    Languages 19% (207/1037) of languages using the Latin script
    First seen 2021-04-30
    Last updated 2022-12-13 (11 months ago)
    Latest releases
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check OFL body text is correct.
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Zeyada link

    Designer Kimberly Geswein
    Subsets menu, latin
    Languages 10% (108/1037) of languages using the Latin script
    First seen 2011-06-08
    Last updated 2023-08-09 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking file is named canonically.
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb subsets should be alphabetically ordered.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: METADATA.pb weight matches postScriptName for static fonts.
    • FAIL: Check font names are correct
    • FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
    • FAIL: Name table entries should not contain line-breaks.
    • FAIL: Directory name in GFonts repo structure must match NameID 1 of the regular.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Font contains '.notdef' as its first glyph?
    • FAIL: Are there unwanted tables?
    • FAIL: Ensure component transforms do not perform scaling or rotation.
  • Full Fontbakery report
  • Zhi Mang Xing link

    Designer Wei Zhimang
    Subsets chinese-simplified, latin, menu
    Languages
    • 10% (105/1037) of languages using the Latin script
    • 10% (1/10) of languages using the Simplified Han script (Missing Wu Chinese; Zhuang, Simplified Han; Chinese, Jinyu; Min Nan Chinese; Literary Chinese; Xiang Chinese; Gan Chinese; Cantonese (Simplified); Hakka Chinese)
    First seen 2019-03-18
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Pull Requests
    Recent Commits
    Failing tests
    • FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
    • FAIL: Does METADATA.pb copyright field contain broken links?
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
    • FAIL: METADATA.pb font.name field contains font name in right format?
    • FAIL: METADATA.pb font.full_name field contains font name in right format?
    • FAIL: METADATA.pb font.post_script_name field contains font name in right format?
    • FAIL: METADATA.pb: Check URL on copyright string is the same as in repository_url field.
    • FAIL: Check glyphs do not have components which are themselves components.
    • FAIL: Font contains '.notdef' as its first glyph?
  • Full Fontbakery report
  • Zilla Slab link

    Designer Typotheque
    Subsets latin, latin-ext, menu
    Languages 10% (113/1037) of languages using the Latin script
    First seen 2017-06-28
    Last updated 2022-05-23 (1 year, 5 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking OS/2 fsType does not impose restrictions.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Check hhea.caretSlopeRise and hhea.caretSlopeRun
    • FAIL: Does the font have any invalid feature tags?
  • Full Fontbakery report
  • Zilla Slab Highlight link

    Designer Typotheque
    Subsets latin, latin-ext, menu
    Languages 11% (115/1037) of languages using the Latin script
    First seen 2017-07-26
    Last updated 2023-08-16 (3 months ago)
    Recent Commits
    Failing tests
    • FAIL: Checking OS/2 fsType does not impose restrictions.
    • FAIL: Check Google Fonts glyph coverage.
    • FAIL: Check license file has good copyright string.
    • FAIL: Check copyright namerecords match license file.
    • FAIL: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
    • FAIL: Copyright notices match canonical pattern in METADATA.pb
    • FAIL: Copyright notices match canonical pattern in fonts
    • FAIL: PPEM must be an integer on hinted fonts.
    • FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
    • FAIL: OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
    • FAIL: Checking OS/2 Metrics match hhea Metrics.
    • FAIL: Whitespace glyphs have ink?
    • FAIL: Checking font version fields (head and name table).
    • FAIL: Does the font have any invalid feature tags?
  • Full Fontbakery report