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.
DEPRECATION WARNING
By late-December 2024, FontBakery version 0.13.0 introduced a new naming scheme for the check-IDs.
Fontbakery detected usage of old IDs and performed an automatic backwards-compatibility translation for you.
This automatic translation will be deprecated in the next major release.
Please start using the new check-IDs as documented at /Lib/fontbakery/legacy_checkids.py
The following legacy check-IDs were detected:
- com.google.fonts/check/fontdata_namecheck
- com.google.fonts/check/outline_jaggy_segments
- com.google.fonts/check/outline_semi_vertical
- com.google.fonts/check/ttx_roundtrip
- com.google.fonts/check/outline_colinear_vectors
- com.google.fonts/check/outline_short_segments
- com.google.fonts/check/version_bump
- com.google.fonts/check/outline_alignment_miss
Summary
💥 ERROR | ☠ FATAL | 🔥 FAIL | ⚠️ WARN | ⏩ SKIP | ℹ️ INFO | ✅ PASS |
---|---|---|---|---|---|---|
3 | 0 | 3 | 19 | 55 | 8 | 150 |
1% | 0% | 1% | 8% | 23% | 3% | 63% |
Meaning of check results:
- 💥 An ERROR is something wrong with FontBakery itself, possibly a bug.
- ☠ A FATAL is an extremely severe issue that must be addressed immediately.
- 🔥 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.13.1
OpenType Specification Checks
⚠️⚠️⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩Check mark characters are in GDEF mark glyph class.
⚠️ Ponomar-Regular.ttf
-
⚠️ WARN
The following mark characters could be in the GDEF mark glyph class: uni20DD (U+20DD), uniFE00 (U+FE00), uniFE01 (U+FE01), uniFE02 (U+FE02) and uniFE03 (U+FE03)
[code: mark-chars]
Check glyphs in mark glyph class are non-spacing.
⚠️ Ponomar-Regular.ttf
-
⚠️ WARN
The following glyphs seem to be spacing (because they have width > 0 on the hmtx table) so they may be in the GDEF mark glyph class by mistake, or they should have zero width instead: uni0485 (U+0485), uni04860301 (U+E001), uni0488 (U+0488), uni0489 (U+0489), uniA670 (U+A670), uniA671 (U+A671) and uniA672 (U+A672)
[code: spacing-mark-glyphs]
Universal Profile Checks
💥⚠️⚠️⚠️⚠️⚠️⚠️⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩ℹ️ℹ️
EXPERIMENTAL CHECK - Since 2024/12/28
Check base characters have non-zero advance width.
💥 Ponomar-Regular.ttf
-
💥 ERROR
Failed with AttributeError: 'CheckRunContext' object has no attribute 'get'
[code: failed-check]File "/Users/simon/work/gf-dashboard/venv/lib/python3.13/site-packages/fontbakery/checkrunner.py", line 222, in _run_check subresults = list(subresults) File "/Users/simon/work/gf-dashboard/venv/lib/python3.13/site-packages/fontbakery/checks/base_has_width.py", line 46, in check_base_has_width problems = bullet_list(context, problems) File "/Users/simon/work/gf-dashboard/venv/lib/python3.13/site-packages/fontbakery/utils.py", line 155, in bullet_list return f"{indentation}{bullet} " + pretty_print_list( ~~~~~~~~~~~~~~~~~^ config, ^^^^^^^ ...<2 lines>... glue=f"\n\n{indentation}{bullet} ", ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/Users/simon/work/gf-dashboard/venv/lib/python3.13/site-packages/fontbakery/utils.py", line 140, in pretty_print_list if config.get("full_lists"): ^^^^^^^^^^
Check if each glyph has the recommended amount of contours.
⚠️ Ponomar-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:
[code: contour-count]- Glyph name: uni002A Contours detected: 2 Expected: 1 or 4 - Glyph name: uni0435 Contours detected: 1 Expected: 2 - Glyph name: uni043A Contours detected: 2 Expected: 1 - Glyph name: uni0450 Contours detected: 2 Expected: 3 - Glyph name: uni0451 Contours detected: 3 Expected: 4 - Glyph name: uni0456 Contours detected: 1 Expected: 2 - Glyph name: uni045C Contours detected: 3 Expected: 2 - Glyph name: uni046E Contours detected: 1 Expected: 2 - Glyph name: uni046F Contours detected: 1 Expected: 2 - Glyph name: uni0473 Contours detected: 2 Expected: 3 - Glyph name: uni0488 Contours detected: 12 Expected: 8 - Glyph name: uni0489 Contours detected: 12 Expected: 8 - Glyph name: uni25CC Contours detected: 8 Expected: 16 or 12 - Glyph name: uniFFFC Contours detected: 150 Expected: 22 - Glyph name: uni0435 Contours detected: 1 Expected: 2 - Glyph name: uni043A Contours detected: 2 Expected: 1 - Glyph name: uni0450 Contours detected: 2 Expected: 3 - Glyph name: uni0451 Contours detected: 3 Expected: 4 - Glyph name: uni0456 Contours detected: 1 Expected: 2 - Glyph name: uni045C Contours detected: 3 Expected: 2 - Glyph name: uni046E Contours detected: 1 Expected: 2 - Glyph name: uni046F Contours detected: 1 Expected: 2 - Glyph name: uni0473 Contours detected: 2 Expected: 3 - Glyph name: uni0488 Contours detected: 12 Expected: 8 - Glyph name: uni0489 Contours detected: 12 Expected: 8 - Glyph name: uni25CC Contours detected: 8 Expected: 16 or 12 - Glyph name: uniFFFC Contours detected: 150 Expected: 22
Are there caret positions declared for every ligature?
⚠️ Ponomar-Regular.ttf
-
⚠️ WARN
This font lacks caret position values for ligature glyphs on its GDEF table.
[code: lacks-caret-pos]
Check math signs have the same width.
⚠️ Ponomar-Regular.ttf
-
⚠️ WARN
The most common width is 887 among a set of 4 math glyphs. The following math glyphs have a different width, though:
Width = 453: uni002B
Width = 611: uni003C
Width = 376: uni003D
Width = 600: uni003E
Width = 399: uni00AC
Width = 579: divide, plusminus, multiply
Width = 375: minus
[code: width-outliers]
Check there are no overlapping path segments
⚠️ Ponomar-Regular.ttf
-
⚠️ WARN
The following glyphs have overlapping path segments:
[code: overlapping-path-segments]* uni0026 (U+0026): L<<108.0,463.0>--<108.0,464.0>> has the same coordinates as a previous segment. * uni0026 (U+0026): B<<108.0,464.0>-<108.0,464.0>-<108.0,464.0>> has the same coordinates as a previous segment. * uniA657 (U+A657): L<<413.0,326.0>--<412.0,326.0>> has the same coordinates as a previous segment.
Does the font contain a soft hyphen?
⚠️ Ponomar-Regular.ttf
-
⚠️ WARN
This font has a 'Soft Hyphen' character.
[code: softhyphen]
Ensure Stylistic Sets have description.
⚠️ Ponomar-Regular.ttf
-
⚠️ WARN
The stylistic set ss01 lacks a description string on the 'name' table.
[code: missing-description]
Article Checks
⚠️Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
⚠️ Ponomar-Regular.ttf
-
⚠️ WARN
Family metadata at /Users/simon/others-repos/fonts//ofl/ponomar does not have an article.
[code: lacks-article]
Metadata Checks
🔥⚠️⏩⏩⏩⏩ℹ️METADATA.pb: Check URL on copyright string is the same as in repository_url field.
🔥 Ponomar-Regular.ttf
-
🔥 FAIL
Repository URL is https://github.com/slavonic/Ponomar
But: font copyright string has 'https://github.com/slavonic/ponomar'
[code: mismatch]
Check for codepoints not covered by METADATA subsets.
⚠️ Ponomar-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+007F : try adding symbols
- U+017F LATIN SMALL LETTER LONG S: try adding latin-ext
- U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: coptic, math, tifinagh, cherokee
- U+0305 COMBINING OVERLINE: try adding one of: elbasan, math, glagolitic, gothic, coptic
- U+0306 COMBINING BREVE: try adding one of: tifinagh, old-permic
- U+0307 COMBINING DOT ABOVE: try adding one of: tai-le, hebrew, math, duployan, todhri, syriac, tifinagh, malayalam, old-permic, coptic, canadian-aboriginal
- U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee
- U+030F COMBINING DOUBLE GRAVE ACCENT: not included in any glyphset definition
- U+0311 COMBINING INVERTED BREVE: try adding one of: coptic, todhri
- U+0327 COMBINING CEDILLA: try adding math
- U+032E COMBINING BREVE BELOW: try adding syriac
- U+0332 COMBINING LOW LINE: try adding math
- U+033E COMBINING VERTICAL TILDE: not included in any glyphset definition
- U+034F COMBINING GRAPHEME JOINER: not included in any glyphset definition
- U+0358 COMBINING DOT ABOVE RIGHT: try adding osage
- U+10FB GEORGIAN PARAGRAPH SEPARATOR: try adding one of: georgian, glagolitic
- U+1DC0 COMBINING DOTTED GRAVE ACCENT: not included in any glyphset definition
- U+1DC1 COMBINING DOTTED ACUTE ACCENT: not included in any glyphset definition
- U+1DF6 COMBINING KAVYKA ABOVE RIGHT: not included in any glyphset definition
- U+1DF7 COMBINING KAVYKA ABOVE LEFT: not included in any glyphset definition
- U+1DF8 COMBINING DOT ABOVE LEFT: try adding syriac
- U+1DF9 COMBINING WIDE INVERTED BRIDGE BELOW: not included in any glyphset definition
- U+2000 EN QUAD: try adding symbols2
- U+2001 EM QUAD: try adding symbols2
- U+2003 EM SPACE: try adding nushu
- U+2004 THREE-PER-EM SPACE: try adding symbols2
- U+2005 FOUR-PER-EM SPACE: try adding symbols2
- U+2006 SIX-PER-EM SPACE: try adding symbols2
- U+2007 FIGURE SPACE: try adding symbols2
- U+2008 PUNCTUATION SPACE: try adding symbols2
- U+200A HAIR SPACE: try adding symbols2
- U+200C ZERO WIDTH NON-JOINER: try adding one of: khmer, thai, hanifi-rohingya, chakma, rejang, javanese, duployan, mahajani, gujarati, tirhuta, syriac, nko, brahmi, new-tai-lue, kaithi, takri, gunjala-gondi, kannada, phags-pa, hanunoo, newa, balinese, sharada, thaana, modi, tai-le, yi, meetei-mayek, arabic, siddham, tibetan, bhaiksuki, avestan, myanmar, syloti-nagri, pahawh-hmong, batak, sinhala, bengali, manichaean, masaram-gondi, sogdian, saurashtra, dogra, khudawadi, malayalam, tagalog, cham, limbu, tai-viet, lepcha, grantha, tagbanwa, mongolian, kharoshthi, oriya, buhid, hebrew, tai-tham, lao, telugu, hatran, tifinagh, kayah-li, zanabazar-square, gurmukhi, khojki, psalter-pahlavi, sundanese, buginese, tamil, warang-citi, devanagari, mandaic
- U+200D ZERO WIDTH JOINER: try adding one of: khmer, thai, hanifi-rohingya, chakma, rejang, javanese, duployan, mahajani, gujarati, tirhuta, syriac, nko, brahmi, new-tai-lue, kaithi, takri, gunjala-gondi, kannada, phags-pa, hanunoo, newa, balinese, sharada, thaana, modi, tai-le, yi, meetei-mayek, arabic, siddham, tibetan, bhaiksuki, avestan, myanmar, syloti-nagri, pahawh-hmong, batak, sinhala, bengali, manichaean, masaram-gondi, sogdian, saurashtra, dogra, khudawadi, malayalam, tagalog, old-hungarian, cham, limbu, tai-viet, lepcha, grantha, tagbanwa, mongolian, kharoshthi, oriya, buhid, hebrew, tai-tham, lao, telugu, tifinagh, kayah-li, zanabazar-square, gurmukhi, khojki, psalter-pahlavi, sundanese, buginese, tamil, warang-citi, devanagari, mandaic
- U+200E LEFT-TO-RIGHT MARK: try adding one of: thaana, hebrew, syriac, nko, arabic, phags-pa
- U+200F RIGHT-TO-LEFT MARK: try adding one of: thaana, hebrew, syriac, nko, phags-pa
- U+2010 HYPHEN: try adding one of: kharoshthi, hebrew, sora-sompeng, yi, kayah-li, arabic, cham, kaithi, sundanese, coptic, armenian, lisu, syloti-nagri
- U+2011 NON-BREAKING HYPHEN: try adding one of: yi, arabic, syloti-nagri
- U+2020 DAGGER: try adding one of: latin-ext, adlam
- U+2024 ONE DOT LEADER: try adding armenian
- U+2025 TWO DOT LEADER: try adding phags-pa
- U+2027 HYPHENATION POINT: not included in any glyphset definition
- U+202F NARROW NO-BREAK SPACE: try adding one of: phags-pa, yi, mongolian
- U+203B REFERENCE MARK: not included in any glyphset definition
- U+2052 COMMERCIAL MINUS SIGN: not included in any glyphset definition
- U+2053 SWUNG DASH: try adding coptic
- U+2056 THREE DOT PUNCTUATION: try adding coptic
- U+2058 FOUR DOT PUNCTUATION: try adding coptic
- U+2059 FIVE DOT PUNCTUATION: try adding coptic
- U+205C DOTTED CROSS: not included in any glyphset definition
- U+205D TRICOLON: try adding one of: meroitic, carian, old-hungarian, meroitic-hieroglyphs
- U+205E VERTICAL FOUR DOTS: try adding old-hungarian
- U+2060 WORD JOINER: not included in any glyphset definition
- U+2074 SUPERSCRIPT FOUR: try adding math
- U+20DD COMBINING ENCLOSING CIRCLE: try adding symbols
- U+2219 BULLET OPERATOR: try adding one of: yi, tai-tham, symbols, math
- U+223B HOMOTHETIC: try adding math
- U+223C TILDE OPERATOR: try adding math
- U+223D REVERSED TILDE: try adding math
- U+2241 NOT TILDE: try adding math
- U+25CC DOTTED CIRCLE: try adding one of: khmer, hanifi-rohingya, javanese, duployan, gujarati, tirhuta, nko, brahmi, kannada, sharada, newa, thaana, tai-le, yi, siddham, miao, syloti-nagri, batak, ahom, sinhala, bengali, sogdian, saurashtra, khudawadi, mende-kikakui, tai-tham, kharoshthi, zanabazar-square, gurmukhi, khojki, sundanese, warang-citi, pahawh-hmong, devanagari, thai, rejang, marchen, gunjala-gondi, armenian, balinese, modi, bhaiksuki, masaram-gondi, malayalam, limbu, tai-viet, grantha, elbasan, tagbanwa, mongolian, hebrew, wancho, telugu, psalter-pahlavi, buginese, chakma, mahajani, syriac, kaithi, takri, tibetan, cham, oriya, math, adlam, osage, tifinagh, caucasian-albanian, kayah-li, tamil, tagalog, coptic, canadian-aboriginal, mandaic, new-tai-lue, bassa-vah, old-permic, phags-pa, hanunoo, soyombo, symbols, meetei-mayek, myanmar, manichaean, dogra, lepcha, music, buhid, lao
- U+2626 ORTHODOX CROSS: try adding symbols
- U+263D FIRST QUARTER MOON: try adding symbols
- U+263E LAST QUARTER MOON: try adding symbols
- U+271A HEAVY GREEK CROSS: try adding symbols
- U+2720 MALTESE CROSS: try adding symbols
- U+2734 EIGHT POINTED BLACK STAR: try adding symbols
- U+29DF DOUBLE-ENDED MULTIMAP: try adding math
- U+2E2A TWO DOTS OVER ONE DOT PUNCTUATION: not included in any glyphset definition
- U+2E2B ONE DOT OVER TWO DOTS PUNCTUATION: not included in any glyphset definition
- U+2E2C SQUARED FOUR DOT PUNCTUATION: not included in any glyphset definition
- U+2E2D FIVE DOT MARK: not included in any glyphset definition
- U+2E2F VERTICAL TILDE: not included in any glyphset definition
- U+2E34 RAISED COMMA: try adding coptic
- U+2E43 DASH WITH LEFT UPTURN: try adding glagolitic
- U+2E45 INVERTED LOW KAVYKA: not included in any glyphset definition
- U+2E46 INVERTED LOW KAVYKA WITH KAVYKA ABOVE: not included in any glyphset definition
- U+2E47 LOW KAVYKA: not included in any glyphset definition
- U+2E48 LOW KAVYKA WITH DOT: not included in any glyphset definition
- U+2E49 DOUBLE STACKED COMMA: not included in any glyphset definition
- U+E000 : not included in any glyphset definition
- U+E001 : not included in any glyphset definition
- U+E002 : not included in any glyphset definition
- U+E003 : not included in any glyphset definition
- U+E004 : not included in any glyphset definition
- U+E005 : not included in any glyphset definition
- U+E016 : not included in any glyphset definition
- U+E0E0 : not included in any glyphset definition
- U+E0E1 : not included in any glyphset definition
- U+E0E2 : not included in any glyphset definition
- U+E0E3 : not included in any glyphset definition
- U+E0E4 : not included in any glyphset definition
- U+E0E5 : not included in any glyphset definition
- U+E0E6 : not included in any glyphset definition
- U+E0E7 : not included in any glyphset definition
- U+E0E8 : not included in any glyphset definition
- U+E0E9 : not included in any glyphset definition
- U+E0EA : not included in any glyphset definition
- U+E0EB : not included in any glyphset definition
- U+E0EC : not included in any glyphset definition
- U+E0ED : not included in any glyphset definition
- U+E0EE : not included in any glyphset definition
- U+E0EF : not included in any glyphset definition
- U+E0F5 : not included in any glyphset definition
- U+E1A5 : not included in any glyphset definition
- U+E2EA : not included in any glyphset definition
- U+E3BE : not included in any glyphset definition
- U+E3BF : not included in any glyphset definition
- U+E3C0 : not included in any glyphset definition
- U+E5D0 : not included in any glyphset definition
- U+E5D1 : not included in any glyphset definition
- U+E5D2 : not included in any glyphset definition
- U+E5D3 : not included in any glyphset definition
- U+E5D4 : not included in any glyphset definition
- U+E5D5 : not included in any glyphset definition
- U+E5D6 : not included in any glyphset definition
- U+E5D7 : not included in any glyphset definition
- U+E612 : not included in any glyphset definition
- U+E714 : not included in any glyphset definition
- U+E800 : not included in any glyphset definition
- U+E8E5 : not included in any glyphset definition
- U+E901 : not included in any glyphset definition
- U+E903 : not included in any glyphset definition
- U+E904 : not included in any glyphset definition
- U+E926 : not included in any glyphset definition
- U+E928 : not included in any glyphset definition
- U+E92D : not included in any glyphset definition
- U+E92E : not included in any glyphset definition
- U+EC45 : not included in any glyphset definition
- U+EC46 : not included in any glyphset definition
- U+EC47 : not included in any glyphset definition
- U+EC48 : not included in any glyphset definition
- U+EC49 : not included in any glyphset definition
- U+EC4A : not included in any glyphset definition
- U+EC4B : not included in any glyphset definition
- U+EC4C : not included in any glyphset definition
- U+EC4D : not included in any glyphset definition
- U+EC50 : not included in any glyphset definition
- U+EF00 : not included in any glyphset definition
- U+EF01 : not included in any glyphset definition
- U+EF02 : not included in any glyphset definition
- U+EF03 : not included in any glyphset definition
- U+EF04 : not included in any glyphset definition
- U+EF05 : not included in any glyphset definition
- U+EF06 : not included in any glyphset definition
- U+EF07 : not included in any glyphset definition
- U+EF08 : not included in any glyphset definition
- U+EF09 : not included in any glyphset definition
- U+EF0A : not included in any glyphset definition
- U+EF0B : not included in any glyphset definition
- U+EF10 : not included in any glyphset definition
- U+EF11 : not included in any glyphset definition
- U+EF12 : not included in any glyphset definition
- U+EF13 : not included in any glyphset definition
- U+EF14 : not included in any glyphset definition
- U+EF15 : not included in any glyphset definition
- U+EF16 : not included in any glyphset definition
- U+EF17 : not included in any glyphset definition
- U+EF20 : not included in any glyphset definition
- U+EF21 : not included in any glyphset definition
- U+EF22 : not included in any glyphset definition
- U+EF23 : not included in any glyphset definition
- U+EF24 : not included in any glyphset definition
- U+EF25 : not included in any glyphset definition
- U+EF26 : not included in any glyphset definition
- U+EF27 : not included in any glyphset definition
- U+EF28 : not included in any glyphset definition
- U+EF29 : not included in any glyphset definition
- U+EF2A : not included in any glyphset definition
- U+EF2B : not included in any glyphset definition
- U+EF2C : not included in any glyphset definition
- U+EF2D : not included in any glyphset definition
- U+EF2E : not included in any glyphset definition
- U+EF2F : not included in any glyphset definition
- U+EF30 : not included in any glyphset definition
- U+EF31 : not included in any glyphset definition
- U+EF32 : not included in any glyphset definition
- U+EF33 : not included in any glyphset definition
- U+EF34 : not included in any glyphset definition
- U+EF35 : not included in any glyphset definition
- U+EF36 : not included in any glyphset definition
- U+EF37 : not included in any glyphset definition
- U+F400 : not included in any glyphset definition
- U+F401 : not included in any glyphset definition
- U+F402 : not included in any glyphset definition
- U+F403 : not included in any glyphset definition
- U+F404 : not included in any glyphset definition
- U+F405 : not included in any glyphset definition
- U+F410 : not included in any glyphset definition
- U+F411 : not included in any glyphset definition
- U+F412 : not included in any glyphset definition
- U+F413 : not included in any glyphset definition
- U+F414 : not included in any glyphset definition
- U+F420 : not included in any glyphset definition
- U+F421 : not included in any glyphset definition
- U+F422 : not included in any glyphset definition
- U+F423 : not included in any glyphset definition
- U+F430 : not included in any glyphset definition
- U+F431 : not included in any glyphset definition
- U+F432 : not included in any glyphset definition
- U+F433 : not included in any glyphset definition
- U+F434 : not included in any glyphset definition
- U+F435 : not included in any glyphset definition
- U+F436 : not included in any glyphset definition
- U+F437 : not included in any glyphset definition
- U+F438 : not included in any glyphset definition
- U+F439 : not included in any glyphset definition
- U+F441 : not included in any glyphset definition
- U+F442 : not included in any glyphset definition
- U+F443 : not included in any glyphset definition
- U+F444 : not included in any glyphset definition
- U+F445 : not included in any glyphset definition
- U+F446 : not included in any glyphset definition
- U+F447 : not included in any glyphset definition
- U+F448 : not included in any glyphset definition
- U+F449 : not included in any glyphset definition
- U+F44A : not included in any glyphset definition
- U+F44B : not included in any glyphset definition
- U+F44C : not included in any glyphset definition
- U+F44D : not included in any glyphset definition
- U+F44E : not included in any glyphset definition
- U+F44F : not included in any glyphset definition
- U+F450 : not included in any glyphset definition
- U+F451 : not included in any glyphset definition
- U+F452 : not included in any glyphset definition
- U+F453 : not included in any glyphset definition
- U+F454 : not included in any glyphset definition
- U+F455 : not included in any glyphset definition
- U+F456 : not included in any glyphset definition
- U+F457 : not included in any glyphset definition
- U+F458 : not included in any glyphset definition
- U+F459 : not included in any glyphset definition
- U+F45A : not included in any glyphset definition
- U+F461 : not included in any glyphset definition
- U+F462 : not included in any glyphset definition
- U+F463 : not included in any glyphset definition
- U+F464 : not included in any glyphset definition
- U+F465 : not included in any glyphset definition
- U+F466 : not included in any glyphset definition
- U+F467 : not included in any glyphset definition
- U+F468 : not included in any glyphset definition
- U+F469 : not included in any glyphset definition
- U+F46A : not included in any glyphset definition
- U+F46B : not included in any glyphset definition
- U+F46C : not included in any glyphset definition
- U+F46D : not included in any glyphset definition
- U+F46E : not included in any glyphset definition
- U+F46F : not included in any glyphset definition
- U+F470 : not included in any glyphset definition
- U+F471 : not included in any glyphset definition
- U+F472 : not included in any glyphset definition
- U+F473 : not included in any glyphset definition
- U+F474 : not included in any glyphset definition
- U+F475 : not included in any glyphset definition
- U+F476 : not included in any glyphset definition
- U+F477 : not included in any glyphset definition
- U+F478 : not included in any glyphset definition
- U+F479 : not included in any glyphset definition
- U+F47A : not included in any glyphset definition
- U+F4DE : not included in any glyphset definition
- U+F4FE : not included in any glyphset definition
- U+F57F : not included in any glyphset definition
- U+F600 : not included in any glyphset definition
- U+F601 : not included in any glyphset definition
- U+F602 : not included in any glyphset definition
- U+F603 : not included in any glyphset definition
- U+F604 : not included in any glyphset definition
- U+F605 : not included in any glyphset definition
- U+F606 : not included in any glyphset definition
- U+FB00 LATIN SMALL LIGATURE FF: 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
- U+FB05 LATIN SMALL LIGATURE LONG S T: not included in any glyphset definition
- U+FE00 VARIATION SELECTOR-1: try adding one of: phags-pa, yi, manichaean
- U+FE01 VARIATION SELECTOR-2: not included in any glyphset definition
- U+FE02 VARIATION SELECTOR-3: not included in any glyphset definition
- U+FE03 VARIATION SELECTOR-4: not included in any glyphset definition
- U+FE26 COMBINING CONJOINING MACRON: try adding one of: coptic, caucasian-albanian
- U+FFF9 INTERLINEAR ANNOTATION ANCHOR: try adding symbols
- U+FFFA INTERLINEAR ANNOTATION SEPARATOR: try adding symbols
- U+FFFB INTERLINEAR ANNOTATION TERMINATOR: try adding symbols
- U+FFFC OBJECT REPLACEMENT CHARACTER: not included in any glyphset definition
- U+1F311 NEW MOON SYMBOL: not included in any glyphset definition
- U+1F312 WAXING CRESCENT MOON SYMBOL: not included in any glyphset definition
- U+1F313 FIRST QUARTER MOON SYMBOL: not included in any glyphset definition
- U+1F314 WAXING GIBBOUS MOON SYMBOL: not included in any glyphset definition
- U+1F315 FULL MOON SYMBOL: try adding symbols
- U+1F316 WANING GIBBOUS MOON SYMBOL: not included in any glyphset definition
- U+1F317 LAST QUARTER MOON SYMBOL: not included in any glyphset definition
- U+1F318 WANING CRESCENT MOON SYMBOL: not included in any glyphset definition
- U+1F319 CRESCENT MOON: not included in any glyphset definition
- U+1F347 GRAPES: not included in any glyphset definition
- U+1F377 WINE GLASS: not included in any glyphset definition
- U+1F41F FISH: try adding symbols
- U+1F540 CIRCLED CROSS POMMEE: try adding symbols
- U+1F541 CROSS POMMEE WITH HALF-CIRCLE BELOW: try adding symbols
- U+1F542 CROSS POMMEE: try adding symbols
- U+1F543 NOTCHED LEFT SEMICIRCLE WITH THREE DOTS: try adding symbols
- U+1F544 NOTCHED RIGHT SEMICIRCLE WITH THREE DOTS: try adding symbols
- U+1F545 SYMBOL FOR MARKS CHAPTER: try adding symbols
- U+1F900 CIRCLED CROSS FORMEE WITH FOUR DOTS: try adding symbols
- U+1F901 CIRCLED CROSS FORMEE WITH TWO DOTS: try adding symbols
- U+1F902 CIRCLED CROSS FORMEE: try adding symbols
- U+1F903 LEFT HALF CIRCLE WITH FOUR DOTS: try adding symbols
- U+1F904 LEFT HALF CIRCLE WITH THREE DOTS: try adding symbols
- U+1F905 LEFT HALF CIRCLE WITH TWO DOTS: try adding symbols
- U+1F906 LEFT HALF CIRCLE WITH DOT: try adding symbols
- U+1F907 LEFT HALF CIRCLE: try adding symbols
- U+1F908 DOWNWARD FACING HOOK: try adding symbols
- U+1F909 DOWNWARD FACING NOTCHED HOOK: try adding symbols
- U+1F90A DOWNWARD FACING HOOK WITH DOT: try adding symbols
- U+1F90B DOWNWARD FACING NOTCHED HOOK WITH DOT: try adding symbols
- U+F0023 : not included in any glyphset definition
- U+F0030 : not included in any glyphset definition
Or you can add the above codepoints to one of the subsets supported by the font:
[code: unreachable-subsetting]cyrillic
,cyrillic-ext
,latin
,menu
Glyphset Checks
💥Shapes languages in all GF glyphsets.
💥 Ponomar-Regular.ttf
-
💥 ERROR
Failed with ModuleNotFoundError: No module named 'shaperglot.checker'
[code: failed-check]File "/Users/simon/work/gf-dashboard/venv/lib/python3.13/site-packages/fontbakery/checkrunner.py", line 222, in _run_check subresults = list(subresults) File "/Users/simon/work/gf-dashboard/venv/lib/python3.13/site-packages/fontbakery/checks/vendorspecific/googlefonts/glyphsets/shape_languages.py", line 19, in check_glyphsets_shape_languages from shaperglot.checker import Checker
Description Checks
🔥⚠️⚠️⚠️ℹ️ℹ️DESCRIPTION.en_us.html should end in a linebreak.
⚠️ METADATA.pb
-
⚠️ WARN
The last characther on DESCRIPTION.en_us.html is not a line-break. Please add it.
[code: missing-eof-linebreak]
⚠️ Ponomar-Regular.ttf
-
⚠️ WARN
The last characther on DESCRIPTION.en_us.html is not a line-break. Please add it.
[code: missing-eof-linebreak]
On a family update, the DESCRIPTION.en_us.html file should ideally also be updated.
⚠️ Ponomar-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]
DESCRIPTION.en_us.html must have more than 200 bytes.
🔥 METADATA.pb
-
🔥 FAIL
DESCRIPTION.en_us.html must have size larger than 200 bytes.
[code: too-short]
Shaping Checks
💥⏩⏩⏩Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.
💥 Ponomar-Regular.ttf
-
💥 ERROR
Failed with ModuleNotFoundError: No module named 'shaperglot.checker'
[code: failed-check]File "/Users/simon/work/gf-dashboard/venv/lib/python3.13/site-packages/fontbakery/checkrunner.py", line 222, in _run_check subresults = list(subresults) File "/Users/simon/work/gf-dashboard/venv/lib/python3.13/site-packages/fontbakery/checks/soft_dotted.py", line 144, in check_soft_dotted from shaperglot.checker import Checker
Outline Checks
⚠️⚠️⚠️Do any segments have colinear vectors?
⚠️ Ponomar-Regular.ttf
-
⚠️ WARN
The following glyphs have colinear vectors:
[code: found-colinear-vectors]* u1F545.alt1 (U+E5D0): L<<510.0,802.0>--<485.0,778.0>> -> L<<485.0,778.0>--<465.0,761.0>> * u1F545.alt2 (U+E5D1): L<<269.0,462.0>--<271.0,653.0>> -> L<<271.0,653.0>--<271.0,659.0>> * u1F545.alt7 (U+E5D6): L<<172.0,600.0>--<196.0,602.0>> -> L<<196.0,602.0>--<217.0,602.0>> * u1F545.alt7 (U+E5D6): L<<81.0,324.0>--<85.0,371.0>> -> L<<85.0,371.0>--<90.0,400.0>> * u1F545.alt8 (U+E5D7): L<<375.0,205.0>--<398.0,262.0>> -> L<<398.0,262.0>--<415.0,315.0>> * u1F545.alt8 (U+E5D7): L<<452.0,306.0>--<446.0,246.0>> -> L<<446.0,246.0>--<435.0,176.0>> * u1F545.alt8 (U+E5D7): L<<457.0,365.0>--<452.0,306.0>> -> L<<452.0,306.0>--<446.0,246.0>> * u1F545.alt8 (U+E5D7): L<<504.0,276.0>--<497.0,339.0>> -> L<<497.0,339.0>--<493.0,379.0>> * u1F545.alt8 (U+E5D7): L<<517.0,208.0>--<504.0,276.0>> -> L<<504.0,276.0>--<497.0,339.0>> * u1F545.alt8 (U+E5D7): L<<726.0,285.0>--<742.0,348.0>> -> L<<742.0,348.0>--<754.0,415.0>> * u1F545.alt8 (U+E5D7): L<<742.0,348.0>--<754.0,415.0>> -> L<<754.0,415.0>--<767.0,464.0>> * u1F545.alt8 (U+E5D7): L<<886.0,436.0>--<902.0,364.0>> -> L<<902.0,364.0>--<921.0,269.0>> * uni0049.ss02 (U+F449): L<<494.0,280.0>--<494.0,222.0>> -> L<<494.0,222.0>--<499.0,128.0>> * uni005A (U+005A): L<<187.0,38.0>--<189.0,38.0>> -> L<<189.0,38.0>--<382.0,42.0>> * uni0074.ss02 (U+F474): L<<59.0,70.0>--<45.0,85.0>> -> L<<45.0,85.0>--<44.0,86.0>> * uni0304 (U+0304): L<<-295.0,575.0>--<-295.0,575.0>> -> L<<-295.0,575.0>--<-34.0,575.0>> * uni040C (U+040C): L<<586.0,180.0>--<586.0,130.0>> -> L<<586.0,130.0>--<585.0,91.0>> * uni040E (U+040E): L<<395.0,-93.0>--<393.0,-146.0>> -> L<<393.0,-146.0>--<393.0,-148.0>> * uni040E (U+040E): L<<430.0,471.0>--<395.0,-93.0>> -> L<<395.0,-93.0>--<393.0,-146.0>> * uni0423 (U+0423): L<<394.0,-94.0>--<392.0,-147.0>> -> L<<392.0,-147.0>--<392.0,-149.0>> * uni0423 (U+0423): L<<429.0,470.0>--<394.0,-94.0>> -> L<<394.0,-94.0>--<392.0,-147.0>> * uni044F (U+044F): L<<198.0,444.0>--<353.0,442.0>> -> L<<353.0,442.0>--<401.0,442.0>> * uni0458 (U+0458): L<<225.0,-266.0>--<228.0,291.0>> -> L<<228.0,291.0>--<228.0,431.0>> * uni0458.var (U+E0F5): L<<225.0,-266.0>--<228.0,291.0>> -> L<<228.0,291.0>--<228.0,431.0>> * uni04BB (U+04BB): L<<58.0,218.0>--<58.0,290.0>> -> L<<58.0,290.0>--<61.0,408.0>> * uni203B (U+203B): L<<295.0,340.0>--<339.0,383.0>> -> L<<339.0,383.0>--<382.0,425.0>> * uni2DE0 (U+2DE0): L<<-219.0,628.0>--<-215.0,663.0>> -> L<<-215.0,663.0>--<-210.0,690.0>> * uni2DE6 (U+2DE6): L<<-391.0,516.0>--<-391.0,532.0>> -> L<<-391.0,532.0>--<-390.0,552.0>>
Do outlines contain any jaggy segments?
⚠️ Ponomar-Regular.ttf
-
⚠️ WARN
The following glyphs have jaggy segments:
[code: found-jaggy-segments]* u1F312 (U+1F312): B<<468.0,49.0>-<442.0,33.0>-<425.0,33.0>>/B<<425.0,33.0>-<432.0,32.0>-<435.0,32.0>> = 8.13010235415596 * u1F318 (U+1F318): B<<376.5,763.0>-<384.0,766.0>-<393.0,768.0>>/L<<393.0,768.0>--<379.0,768.0>> = 12.528807709151492 * u1F377 (U+1F377): B<<466.5,415.5>-<489.0,424.0>-<507.0,431.0>>/B<<507.0,431.0>-<499.0,430.0>-<487.5,430.0>> = 14.12548915823142 * u1F41F (U+1F41F): B<<516.0,308.0>-<543.0,314.0>-<730.0,332.0>>/B<<730.0,332.0>-<702.0,336.0>-<675.5,337.5>> = 13.62826507913694 * u1F41F (U+1F41F): L<<833.0,445.0>--<914.0,405.0>>/B<<914.0,405.0>-<900.0,416.0>-<900.0,434.0>> = 11.875815566048908 * uni263D (U+263D): B<<117.0,764.0>-<107.0,766.0>-<96.0,767.0>>/B<<96.0,767.0>-<110.0,763.0>-<128.5,749.0>> = 10.750966993188039 * uni263D (U+263D): B<<124.5,28.5>-<113.0,20.0>-<106.0,20.0>>/B<<106.0,20.0>-<113.0,19.0>-<116.0,18.5>> = 8.13010235415596 * uni263E (U+263E): B<<359.5,749.0>-<378.0,763.0>-<392.0,767.0>>/B<<392.0,767.0>-<382.0,766.0>-<372.0,764.0>> = 10.234802763423207 * uni263E (U+263E): B<<372.0,18.5>-<375.0,19.0>-<382.0,20.0>>/B<<382.0,20.0>-<376.0,20.0>-<364.0,28.5>> = 8.13010235415596 * uni2DF5 (U+2DF5): B<<25.0,604.5>-<30.0,618.0>-<37.0,638.0>>/B<<37.0,638.0>-<34.0,632.0>-<17.0,632.0>> = 7.2750049578891804 * uni2DF50487 (U+F410): B<<25.0,604.5>-<30.0,618.0>-<37.0,638.0>>/B<<37.0,638.0>-<34.0,632.0>-<17.0,632.0>> = 7.2750049578891804 * uniA656 (U+A656): B<<676.5,437.5>-<684.0,451.0>-<691.0,464.0>>/B<<691.0,464.0>-<677.0,447.0>-<659.5,433.0>> = 11.171704082337422
Do outlines contain any semi-vertical or semi-horizontal lines?
⚠️ Ponomar-Regular.ttf
-
⚠️ WARN
The following glyphs have semi-vertical/semi-horizontal lines:
[code: found-semi-vertical]* onequarter (U+00BC): L<<216.0,635.0>--<215.0,361.0>> * u1F545.alt2 (U+E5D1): L<<172.0,761.0>--<173.0,450.0>> * u1F545.alt2 (U+E5D1): L<<173.0,404.0>--<175.0,0.0>> * u1F545.alt2 (U+E5D1): L<<690.0,761.0>--<691.0,438.0>> * u1F545.alt2 (U+E5D1): L<<691.0,341.0>--<692.0,0.0>> * uni004E (U+004E): L<<556.0,185.0>--<554.0,514.0>> * uni0054 (U+0054): L<<350.0,504.0>--<352.0,124.0>> * uni0065 (U+0065): L<<385.0,256.0>--<119.0,258.0>> * uni00D1 (U+00D1): L<<556.0,185.0>--<554.0,514.0>> * uni00E8 (U+00E8): L<<385.0,256.0>--<119.0,258.0>> * uni00E9 (U+00E9): L<<385.0,256.0>--<119.0,258.0>> * uni00EA (U+00EA): L<<385.0,256.0>--<119.0,258.0>> * uni00EB (U+00EB): L<<385.0,256.0>--<119.0,258.0>> * uni0458 (U+0458): L<<225.0,-266.0>--<228.0,291.0>> * uni0458.var (U+E0F5): L<<225.0,-266.0>--<228.0,291.0>> * uni04AF (U+04AF): L<<267.0,0.0>--<265.0,-280.0>> * uni052A (U+052A): L<<219.0,24.0>--<414.0,25.0>> * uni2DE0 (U+2DE0): L<<-237.0,710.0>--<-32.0,711.0>>
Font File Checks
🔥⚠️⚠️⚠️⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩ℹ️ℹ️Check Google Fonts glyph coverage.
🔥 Ponomar-Regular.ttf
-
🔥 FAIL
Missing required codepoints:
[code: missing-codepoints]- 0x2122 (TRADE MARK SIGN)
Ensure fonts have ScriptLangTags declared on the 'meta' table.
⚠️ Ponomar-Regular.ttf
-
⚠️ WARN
This font file does not have a 'meta' table.
[code: lacks-meta-table]
Checking OS/2 achVendID.
⚠️ Ponomar-Regular.ttf
-
⚠️ WARN
OS/2 VendorID value ' ' 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 font follows the Google Fonts vertical metric schema
⚠️ Ponomar-Regular.ttf
-
⚠️ WARN
We recommend the absolute sum of the hhea metrics should be between 1.2-1.5x of the font's upm. This font has 1.61x (1610)
[code: bad-hhea-range]