dotfiles/init/FiraCode/googlefonts-qa/checks/static/FiraCode-Regular.checks.md
2020-05-07 09:30:45 +02:00

72 KiB
Raw Blame History

Fontbakery report

Fontbakery version: 0.7.1

[31] Family checks
🔥 FAIL: Check font has a license.
  • com.google.fonts/check/family/has_license
  • 🔥 FAIL No license file was found. Please add an OFL.txt or a LICENSE.txt file. If you are running fontbakery on a Google Fonts upstream repo, which is fine, just make sure there is a temporary license file in the same folder. [code: no-license]
INFO: Do we have the latest version of FontBakery installed?
🍞 PASS: Fonts have equal numbers of glyphs?
🍞 PASS: Fonts have equal glyph names?
🍞 PASS: All tabular figures must have the same width across the RIBBI-family.
🍞 PASS: Does font file include unacceptable control character glyphs?
🍞 PASS: Checking all files are in the same directory.
🍞 PASS: Is the command `ftxvalidator` (Apple Font Tool Suite) available?
🍞 PASS: Fonts have equal unicode encodings?
🍞 PASS: Make sure all font files have the same version value.
🍞 PASS: Fonts have consistent PANOSE proportion?
🍞 PASS: Fonts have consistent PANOSE family type?
🍞 PASS: Check that OS/2.fsSelection bold & italic settings are unique for each NameID1
🍞 PASS: Fonts have consistent underline thickness?
🍞 PASS: Verify that each group of fonts with the same nameID 1 has maximum of 4 fonts
💤 SKIP: Does DESCRIPTION file contain broken links?
💤 SKIP: Is this a proper HTML snippet?
💤 SKIP: DESCRIPTION.en_us.html must have more than 200 bytes.
💤 SKIP: DESCRIPTION.en_us.html must have less than 1000 bytes.
💤 SKIP: Check METADATA.pb parse correctly.
💤 SKIP: Font designer field in METADATA.pb must not be 'unknown'.
💤 SKIP: METADATA.pb: Fontfamily is listed on Google Fonts API?
💤 SKIP: METADATA.pb: check if fonts field only has unique "full_name" values.
💤 SKIP: METADATA.pb: check if fonts field only contains unique style:weight pairs.
💤 SKIP: METADATA.pb license is "APACHE2", "UFL" or "OFL"?
💤 SKIP: METADATA.pb should contain at least "menu" and "latin" subsets.
💤 SKIP: METADATA.pb subsets should be alphabetically ordered.
💤 SKIP: METADATA.pb: Copyright notice is the same in all fonts?
💤 SKIP: Check that METADATA.pb family values are all the same.
💤 SKIP: METADATA.pb: According Google Fonts standards, families should have a Regular style.
💤 SKIP: METADATA.pb: Regular should be 400.

[122] FiraCode-Regular.ttf
🔥 FAIL: Copyright notices match canonical pattern in fonts
🔥 FAIL: PPEM must be an integer on hinted fonts.
🔥 FAIL: Glyph names are all valid?
  • com.google.fonts/check/valid_glyphnames
  • 🔥 FAIL The following glyph names do not comply with naming conventions: ['numbersign_numbersign_numbersign.liga', 'numbersign_numbersign_numbersign_numbersign.liga', 'numbersign_underscore_parenleft.liga', 'quadrantUpperLeftAndLowerLeftAndLowerRight', 'quadrantUpperLeftAndUpperRightAndLowerLeft', 'quadrantUpperLeftAndUpperRightAndLowerRight', 'quadrantUpperRightAndLowerLeftAndLowerRight', 'whiteSquareWithUpperLeftQuadrant', 'whiteSquareWithLowerLeftQuadrant', 'whiteSquareWithLowerRightQuadrant', 'whiteSquareWithUpperRightQuadrant', 'asciitilde_asciitilde_greater.liga'] A glyph name may be up to 31 characters in length, must be entirely comprised of characters from the following set: A-Z a-z 0-9 .(period) (underscore). and must not start with a digit or period. There are a few exceptions such as the special character ".notdef". The glyph names "twocents", "a1", and "" are all valid, while "2cents" and ".twocents" are not.
WARN: Checking OS/2 achVendID.
WARN: Check if each glyph has the recommended amount of contours.
  • com.google.fonts/check/contour_count
  • 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: uniE000 Contours detected: 5 Expected: 1 Glyph name: aogonek Contours detected: 3 Expected: 2 Glyph name: eogonek Contours detected: 3 Expected: 2 Glyph name: Eng Contours detected: 2 Expected: 1 Glyph name: Uogonek Contours detected: 2 Expected: 1 Glyph name: uogonek Contours detected: 2 Expected: 1 Glyph name: Kappa Contours detected: 2 Expected: 1 Glyph name: kappa Contours detected: 2 Expected: 1 Glyph name: uni03CF Contours detected: 2 Expected: 1 Glyph name: uni040F Contours detected: 2 Expected: 1 Glyph name: uni0426 Contours detected: 2 Expected: 1 Glyph name: uni0429 Contours detected: 2 Expected: 1 Glyph name: uni0446 Contours detected: 2 Expected: 1 Glyph name: uni0449 Contours detected: 2 Expected: 1 Glyph name: uni04C7 Contours detected: 2 Expected: 1 Glyph name: uni04C8 Contours detected: 2 Expected: 1 Glyph name: uni04FE Contours detected: 2 Expected: 1 Glyph name: uni0524 Contours detected: 2 Expected: 1 Glyph name: uni0525 Contours detected: 2 Expected: 1 Glyph name: uni0527 Contours detected: 2 Expected: 1 Glyph name: uni0528 Contours detected: 2 Expected: 1 Glyph name: uni0529 Contours detected: 2 Expected: 1 Glyph name: uni2552 Contours detected: 1 Expected: 2 Glyph name: uni2553 Contours detected: 1 Expected: 2 Glyph name: uni2555 Contours detected: 1 Expected: 2 Glyph name: uni2556 Contours detected: 1 Expected: 2 Glyph name: uni2558 Contours detected: 1 Expected: 2 Glyph name: uni2559 Contours detected: 1 Expected: 2 Glyph name: uni255B Contours detected: 1 Expected: 2 Glyph name: uni255C Contours detected: 1 Expected: 2 Glyph name: uni255E Contours detected: 1 Expected: 2 Glyph name: uni2561 Contours detected: 1 Expected: 2 Glyph name: ltshade Contours detected: 60 Expected: 46 Glyph name: shade Contours detected: 91 Expected: 85 Glyph name: dkshade Contours detected: 46 Expected: 73 Glyph name: trademark Contours detected: 1 Expected: 2 Glyph name: uni2158 Contours detected: 3 Expected: 4

WARN: Checking correctness of monospaced metadata.
  • com.google.fonts/check/monospace
  • WARN Font is monospaced but 26 glyphs (1.5643802647412757%) have a different width. You should check the widths of: ['uni200B', 'uniFEFF', 'uni0308', 'uni0307', 'gravecomb', 'acutecomb', 'uni030B', 'uni0302', 'uni030C', 'uni0306', 'uni030A', 'tildecomb', 'uni0304', 'uni0305', 'uni030F', 'uni0313', 'uni0314', 'uni0326', 'uni0327', 'uni0342', 'uni0345', 'null', '_part.numbersign', 'uniE000', 'uniE001', 'uniE002'] [code: mono-outliers]
WARN: Monospace font has hhea.advanceWidthMax equal to each glyph's advanceWidth?
  • com.google.fonts/check/monospace_max_advancewidth
  • WARN This seems to be a monospaced font, so advanceWidth value should be the same across all glyphs, but 99.88% of them have a different value: A, Aacute, Abreve, Acircumflex, Adieresis, Agrave, Amacron, Aogonek, Aring, Atilde, AE, AEacute, B, C, Cacute, Ccaron, Ccedilla, Ccircumflex, Cdotaccent, D, Eth, Dcaron, Dcroat, E, Eacute, Ebreve, Ecaron, Ecircumflex, Edieresis, Edotaccent, Egrave, Emacron, Eogonek, F, G, Gbreve, Gcircumflex, uni0122, Gdotaccent, H, Hbar, Hcircumflex, I, IJ, Iacute, Ibreve, Icircumflex, Idieresis, Idotaccent, Igrave, Imacron, Iogonek, Itilde, J, Jcircumflex, K, uni0136, L, Lacute, Lcaron, uni013B, Ldot, Lslash, M, N, Nacute, Ncaron, uni0145, Eng, Ntilde, O, Oacute, Obreve, Ocircumflex, Odieresis, Ograve, Ohungarumlaut, Omacron, Oslash, Oslashacute, Otilde, OE, P, Thorn, Q, R, Racute, Rcaron, uni0156, S, Sacute, Scaron, Scedilla, Scircumflex, uni0218, T, Tbar, Tcaron, uni0162, uni021A, U, Uacute, Ubreve, Ucircumflex, Udieresis, Ugrave, Uhungarumlaut, Umacron, Uogonek, Uring, Utilde, V, W, Wacute, Wcircumflex, Wdieresis, Wgrave, X, Y, Yacute, Ycircumflex, Ydieresis, Ygrave, Z, Zacute, Zcaron, Zdotaccent, Cacute.loclPLK, Nacute.loclPLK, Oacute.loclPLK, Sacute.loclPLK, Zacute.loclPLK, a, aacute, abreve, acircumflex, adieresis, agrave, amacron, aogonek, aring, atilde, ae, aeacute, b, c, cacute, ccaron, ccedilla, ccircumflex, cdotaccent, d, eth, dcaron, dcroat, e, eacute, ebreve, ecaron, ecircumflex, edieresis, edotaccent, egrave, emacron, eogonek, f, g, gbreve, gcircumflex, uni0123, gdotaccent, h, hbar, hcircumflex, i, dotlessi, iacute, ibreve, icircumflex, idieresis, i.loclTRK, igrave, ij, imacron, iogonek, itilde, j, uni0237, jcircumflex, k, uni0137, kgreenlandic, l, lacute, lcaron, uni013C, ldot, lslash, m, n, nacute, napostrophe, ncaron, uni0146, eng, ntilde, o, oacute, obreve, ocircumflex, odieresis, ograve, ohungarumlaut, omacron, oslash, oslashacute, otilde, oe, p, thorn, q, r, racute, rcaron, uni0157, s, sacute, scaron, scedilla, scircumflex, uni0219, germandbls, t, tbar, tcaron, uni0163, uni021B, u, uacute, ubreve, ucircumflex, udieresis, ugrave, uhungarumlaut, umacron, uogonek, uring, utilde, v, w, wacute, wcircumflex, wdieresis, wgrave, x, y, yacute, ycircumflex, ydieresis, ygrave, z, zacute, zcaron, zdotaccent, cacute.loclPLK, nacute.loclPLK, oacute.loclPLK, sacute.loclPLK, zacute.loclPLK, x.multiply, r.ss01, w_w_w.liga, ordfeminine, ordmasculine, uni207F, uni052C, uni052A, uni052E, uni0528, uni0410, uni0411, uni0412, uni0413, uni0403, uni0490, uni0414, uni0415, uni0400, uni0401, uni0416, uni0417, uni0418, uni0419, uni040D, uni048A, uni041A, uni040C, uni041B, uni041C, uni041D, uni041E, uni041F, uni0420, uni0421, uni0422, uni0423, uni040E, uni0424, uni0425, uni0427, uni0426, uni0428, uni0429, uni040F, uni042C, uni042A, uni042B, uni0409, uni040A, uni0405, uni0404, uni042D, uni0406, uni0407, uni0408, uni040B, uni042E, uni042F, uni0402, uni0460, uni0462, uni0464, uni0466, uni0468, uni046A, uni046C, uni046E, uni0470, uni0472, uni0474, uni0476, uni0478, uni0492, uni0494, uni0496, uni0498, uni049A, uni049C, uni049E, uni04A0, uni04A2, uni04A4, uni04A6, uni0524, uni04A8, uni04AA, uni04AC, Ustraitcy, Ustraitstrokecy, uni04B2, uni04B4, uni04B6, uni04B8, uni04BA, uni0526, uni04BC, uni04BE, uni04C0, uni04C1, uni04C3, uni04C5, uni04C7, uni04C9, uni04CB, uni04CD, uni04D0, uni04D2, uni04D4, uni04D6, uni04D8, uni04DA, uni04DC, uni04DE, uni04E0, uni04E2, uni04E4, uni04E6, uni04E8, uni04EA, uni04EC, uni04EE, uni04F0, uni04F2, uni04F4, uni04F6, uni04F8, uni04FA, uni04FC, uni04FE, uni0500, uni0502, uni0504, uni0506, uni0508, uni050A, uni050C, uni050E, uni0510, uni0512, uni0514, uni0516, uni0518, uni051A, uni051C, uni051E, uni0520, uni0522, uni048C, uni048E, uni0430, uni0431, uni0432, uni0433, uni0453, uni0491, uni0434, uni0435, uni0450, uni0451, uni0436, uni0437, uni0438, uni0439, uni045D, uni048B, uni043A, uni045C, uni043B, uni043C, uni043D, uni043E, uni043F, uni0440, uni0441, uni0442, uni0443, uni045E, uni0444, uni0445, uni0447, uni0446, uni0448, uni0449, uni045F, uni044C, uni044A, uni044B, uni0459, uni045A, uni0455, uni0454, uni044D, uni0456, uni0457, uni0458, uni045B, uni044E, uni044F, uni0452, uni0461, uni0463, uni0465, uni0467, uni0469, uni046B, uni046D, uni046F, uni0471, uni0473, uni0475, uni0477, uni0479, uni0493, uni0495, uni0497, uni0499, uni049B, uni049D, uni049F, uni04A1, uni04A3, uni04A5, uni0525, uni04A7, uni04A9, uni04AB, uni04AD, ustraitcy, ustraitstrokecy, uni04B3, uni04B5, uni04B7, uni04B9, uni04BB, uni0527, uni04BD, uni04BF, uni04CF, uni04C2, uni04C4, uni04C6, uni04C8, uni04CA, uni04CC, uni04CE, uni04D1, uni04D3, uni04D5, uni04D7, uni04D9, uni04DB, uni04DD, uni04DF, uni04E1, uni04E3, uni04E5, uni04E7, uni04E9, uni04EB, uni04ED, uni04EF, uni04F1, uni04F3, uni04F5, uni04F7, uni04F9, uni04FB, uni04FD, uni04FF, uni0501, uni0503, uni0505, uni0507, uni0509, uni050B, uni050D, uni050F, uni0511, uni0513, uni0515, uni0517, uni0519, uni051B, uni051D, uni051F, uni0521, uni0523, uni048D, uni048F, uni052D, uni052B, uni052F, uni0529, Yotgreek, Alpha, Beta, Gamma, uni0394, Epsilon, Zeta, Eta, Theta, Iota, Kappa, Lambda, Mu, Nu, Xi, Omicron, Pi, Rho, Sigma, Tau, Upsilon, Phi, Chi, Psi, uni03A9, Alphatonos, Epsilontonos, Etatonos, Iotatonos, Omicrontonos, Upsilontonos, Omegatonos, Iotadieresis, Upsilondieresis, uni0370, uni0372, uni0376, uni03D8, uni03DA, uni03DC, uni03DE, uni03E0, uni03CF, uni03D2, uni03D3, uni03D4, uni03F4, uni03F7, uni03F9, uni03FA, uni03FD, uni03FE, uni03FF, uni1F08, uni1F09, uni1F0A, uni1F0B, uni1F0C, uni1F0D, uni1F0E, uni1F0F, uni1FBA, uni1FBB, uni1FB8, uni1FB9, uni1FBC, uni1F88, uni1F89, uni1F8A, uni1F8B, uni1F8C, uni1F8D, uni1F8E, uni1F8F, uni1F18, uni1F19, uni1F1A, uni1F1B, uni1F1C, uni1F1D, uni1FC8, uni1FC9, uni1F28, uni1F29, uni1F2A, uni1F2B, uni1F2C, uni1F2D, uni1F2E, uni1F2F, uni1FCA, uni1FCB, uni1FCC, uni1F98, uni1F99, uni1F9A, uni1F9B, uni1F9C, uni1F9D, uni1F9E, uni1F9F, uni1F38, uni1F39, uni1F3A, uni1F3B, uni1F3C, uni1F3D, uni1F3E, uni1F3F, uni1FDA, uni1FDB, uni1FD8, uni1FD9, uni1F48, uni1F49, uni1F4A, uni1F4B, uni1F4C, uni1F4D, uni1FF8, uni1FF9, uni1FEC, uni1F59, uni1F5B, uni1F5D, uni1F5F, uni1FEA, uni1FEB, uni1FE8, uni1FE9, uni1F68, uni1F69, uni1F6A, uni1F6B, uni1F6C, uni1F6D, uni1F6E, uni1F6F, uni1FFA, uni1FFB, uni1FFC, uni1FA8, uni1FA9, uni1FAA, uni1FAB, uni1FAC, uni1FAD, uni1FAE, uni1FAF, alpha, beta, gamma, delta, epsilon, zeta, eta, theta, iota, kappa, lambda, uni03BC, nu, xi, omicron, pi, rho, uni03C2, sigma, tau, upsilon, phi, chi, psi, omega, iotatonos, iotadieresis, iotadieresistonos, upsilontonos, upsilondieresis, upsilondieresistonos, omicrontonos, omegatonos, alphatonos, epsilontonos, etatonos, uni0371, uni0373, uni0377, reversedlunatesigmasymbol, dottedlunatesigmasymbol, reverseddottedlunatesigmasymbol, uni03D9, uni03DB, uni03DD, uni03DF, uni03E1, uni03D7, uni03D0, uni03D1, uni03D5, uni03D6, uni03F0, uni03F1, uni03F2, uni03F3, uni03F5, uni03F8, uni03FB, uni03FC, uni1F00, uni1F01, uni1F02, uni1F03, uni1F04, uni1F05, uni1F06, uni1F07, uni1F70, uni1F71, uni1FB6, uni1FB0, uni1FB1, uni1FB3, uni1FB2, uni1FB4, uni1F80, uni1F81, uni1F82, uni1F83, uni1F84, uni1F85, uni1F86, uni1F87, uni1FB7, uni1F10, uni1F11, uni1F12, uni1F13, uni1F14, uni1F15, uni1F72, uni1F73, uni1F20, uni1F21, uni1F22, uni1F23, uni1F24, uni1F25, uni1F26, uni1F27, uni1F74, uni1F75, uni1FC6, uni1FC3, uni1FC2, uni1FC4, uni1F90, uni1F91, uni1F92, uni1F93, uni1F94, uni1F95, uni1F96, uni1F97, uni1FC7, uni1F30, uni1F31, uni1F32, uni1F33, uni1F34, uni1F35, uni1F36, uni1F37, uni1F76, uni1F77, uni1FD6, uni1FD0, uni1FD1, uni1FD2, uni1FD3, uni1FD7, uni1F40, uni1F41, uni1F42, uni1F43, uni1F44, uni1F45, uni1F78, uni1F79, uni1FE4, uni1FE5, uni1F50, uni1F51, uni1F52, uni1F53, uni1F54, uni1F55, uni1F56, uni1F57, uni1F7A, uni1F7B, uni1FE6, uni1FE0, uni1FE1, uni1FE2, uni1FE3, uni1FE7, uni1F60, uni1F61, uni1F62, uni1F63, uni1F64, uni1F65, uni1F66, uni1F67, uni1F7C, uni1F7D, uni1FF6, uni1FF3, uni1FF2, uni1FF4, uni1FA0, uni1FA1, uni1FA2, uni1FA3, uni1FA4, uni1FA5, uni1FA6, uni1FA7, uni1FF7, uni1FBE, uni037A, zero, one, two, three, four, five, six, seven, eight, nine, zero.tosf, one.tosf, two.tosf, three.tosf, four.tosf, five.tosf, six.tosf, seven.tosf, eight.tosf, nine.tosf, zero.tosf.zero, zero.zero, uni2080, uni2081, uni2082, uni2083, uni2084, uni2085, uni2086, uni2087, uni2088, uni2089, zero.dnom, one.dnom, two.dnom, three.dnom, four.dnom, five.dnom, six.dnom, seven.dnom, eight.dnom, nine.dnom, zero.numr, one.numr, two.numr, three.numr, four.numr, five.numr, six.numr, seven.numr, eight.numr, nine.numr, uni2070, uni00B9, uni00B2, uni00B3, uni2074, uni2075, uni2076, uni2077, uni2078, uni2079, fraction, uni215F, onehalf, uni2153, uni2154, onequarter, threequarters, uni2155, uni2156, uni2157, uni2158, uni2159, uni215A, oneeighth, threeeighths, fiveeighths, seveneighths, asterisk, backslash, periodcentered, bullet, colon, comma, ellipsis, exclam, exclamdown, numbersign, period, question, questiondown, quotedbl, quotesingle, semicolon, slash, uni204A, underscore, underscoredbl, exclamdown.case, questiondown.case, asterisk.lc, numbersign.tosf, colon.uc, uni208D, uni208E, braceleft, braceright, bracketleft, bracketright, parenleft, parenright, uni207D, uni207E, braceleft.case, braceright.case, bracketleft.case, bracketright.case, parenleft.case, parenright.case, parenleft.dnom, parenright.dnom, parenleft.numr, parenright.numr, uni2015, emdash, endash, figuredash, hyphen, uni00AD, emdash.case, endash.case, hyphen.case, uni00AD.case, hyphen.lc, figuredash.tosf, guillemotleft, guillemotright, guilsinglleft, guilsinglright, quotedblbase, quotedblleft, quotedblright, quoteleft, quoteright, quotesinglbase, guillemotleft.case, guillemotright.case, guilsinglleft.case, guilsinglright.case, asterisk_asterisk.liga, asterisk_asterisk_asterisk.liga, asterisk_greater.liga, asterisk_slash.liga, braceleft_bar.liga, bracketleft_bar.liga, bracketright_numbersign.liga, colon_colon.liga, colon_colon_colon.liga, colon_colon_equal.liga, colon_equal.liga, colon_greater.liga, colon_less.liga, exclam_exclam.liga, exclam_exclam_period.liga, exclam_equal.liga, exclam_equal_equal.liga, hyphen_bar.liga, hyphen_hyphen.liga, hyphen_hyphen_hyphen.liga, hyphen_hyphen_greater.liga, hyphen_greater.liga, hyphen_greater_greater.liga, hyphen_less.liga, hyphen_less_less.liga, hyphen_asciitilde.liga, numbersign_braceleft.liga, numbersign_bracketleft.liga, numbersign_colon.liga, numbersign_exclam.liga, numbersign_numbersign.liga, numbersign_numbersign_numbersign.liga, numbersign_numbersign_numbersign_numbersign.liga, numbersign_equal.liga, numbersign_parenleft.liga, numbersign_question.liga, numbersign_underscore.liga, numbersign_underscore_parenleft.liga, period_hyphen.liga, period_equal.liga, period_period.liga, period_period_equal.liga, period_period_less.liga, period_period_period.liga, period_question.liga, question_colon.liga, question_equal.liga, question_period.liga, question_question.liga, semicolon_semicolon.liga, slash_asterisk.liga, slash_equal.liga, slash_equal_equal.liga, slash_greater.liga, slash_slash.liga, slash_slash_slash.liga, underscore_bar_underscore.liga, underscore_underscore.liga, numbersign_colon.liga_rem, anoteleia, uni037E, uni2007, uni2008, space, uni00A0, uni200B, space.frac, uni2007.tf, uni2007.tosf, CR, uniFEFF, cent, currency, dollar, uni20AF, Euro, florin, uni20BA, uni20BD, uni20B9, sterling, yen, cent.tosf, currency.tosf, dollar.tosf, uni20AF.tosf, Euro.tosf, uni20BA.tosf, uni20BD.tosf, uni20B9.tosf, sterling.tosf, yen.tosf, uni2219, uni2215, equalsinferior, uni207C, equivalence, integralbt, integraltp, uni208B, uni207B, plus, minus, multiply, divide, equal, notequal, greater, less, greaterequal, lessequal, plusminus, approxequal, asciitilde, logicalnot, infinity, intersection, integral, uni2206, product, summation, radical, uni00B5, partialdiff, percent, perthousand, uni208A, uni207A, revlogicalnot, infinity.case, plus.dnom, minus.dnom, equal.dnom, plus.lc, plus.numr, minus.numr, equal.numr, plus.tosf, minus.tosf, multiply.tosf, divide.tosf, equal.tosf, notequal.tosf, greater.tosf, less.tosf, greaterequal.tosf, lessequal.tosf, plusminus.tosf, approxequal.tosf, asciitilde.tosf, logicalnot.tosf, infinity.tosf, integral.tosf, product.tosf, summation.tosf, radical.tosf, partialdiff.tosf, percent.tosf, perthousand.tosf, arrowup, uni2197, arrowright, uni2198, arrowdown, uni2199, arrowleft, uni2196, arrowboth, arrowupdown, uni21E7, uni21E8, uni21E9, uni21E6, uni2B06, uni2B07, uni2B05, blackRightArrow, uni2581, uni2582, uni2583, downBlock, uni2585, uni2586, uni2587, block, upBlock, uni2594, uni258F, uni258E, uni258D, lfblock, uni258B, uni258A, uni2589, rtblock, uni2595, quadrantLowerLeft, quadrantLowerRight, quadrantUpperLeft, quadrantUpperLeftAndLowerLeftAndLowerRight, quadrantUpperLeftAndLowerRight, quadrantUpperLeftAndUpperRightAndLowerLeft, quadrantUpperLeftAndUpperRightAndLowerRight, quadrantUpperRight, quadrantUpperRightAndLowerLeft, quadrantUpperRightAndLowerLeftAndLowerRight, ltshade, shade, dkshade, uni25CF, circle, uni25EF, uni25D0, uni25D1, uni25D2, uni25D3, uni25D6, uni25D7, uni25D5, uni25F4, uni25F5, uni25F6, uni25F7, uni25C9, uni25CE, invcircle, uni25DA, uni25DB, uni25E0, uni25E1, uni25DC, uni25DD, uni25DE, uni25DF, uni25C6, uni25C7, lozenge, uni25AE, filledrect, uni25AD, uni25AF, uni250C, uni2514, uni2510, uni2518, uni253C, uni252C, uni2534, uni251C, uni2524, uni2500, uni2502, uni2561, uni2562, uni2556, uni2555, uni2563, uni2551, uni2557, uni255D, uni255C, uni255B, uni255E, uni255F, uni255A, uni2554, uni2569, uni2566, uni2560, uni2550, uni256C, uni2567, uni2568, uni2564, uni2565, uni2559, uni2558, uni2552, uni2553, uni256B, uni256A, filledbox, uni25A1, whiteSquareWithRoundedCorners, uni25A3, uni25AA, uni25AB, uni25E7, uni25E8, uni25E9, uni25EA, uni25EB, whiteSquareWithUpperLeftQuadrant, whiteSquareWithLowerLeftQuadrant, whiteSquareWithLowerRightQuadrant, whiteSquareWithUpperRightQuadrant, triagupTriangle, uni25B6, triangledown, uni25C0, triangleright, triaglf, blackUpperRightTriangle, blackLowerRightTriangle, blackLowerLeftTriangle, blackUpperLeftTriangle, uni2530, uni2512, uni2527, uni250E, uni251F, uni2541, uni252F, uni2511, uni2529, uni250D, uni2521, uni2547, uni254D, uni254F, uni257B, uni2533, uni2513, uni250F, uni2501, uni2578, uni257E, uni257A, uni2579, uni253B, uni251B, uni257F, uni2517, uni2503, uni254B, uni252B, uni2523, uni2545, uni252D, uni2535, uni253D, uni2532, uni253A, uni254A, uni2543, uni2573, uni2572, uni2571, uni254C, uni254E, uni2577, uni2574, uni257C, uni2576, uni2575, uni257D, uni2546, uni252E, uni2536, uni253E, uni2531, uni2539, uni2549, uni2544, uni2540, uni2538, uni2526, uni251A, uni251E, uni2516, uni2548, uni2537, uni252A, uni2519, uni2522, uni2515, uni2542, uni2528, uni2520, uni253F, uni2525, uni251D, lozenge.tosf, uni2610, uni2611, uni2612, uni2620, uni2639, smileface, invsmileface, sun, female, male, spade, club, heart, diamond, musicalnote, musicalnotedbl, uni2713, at, ampersand, paragraph, section, copyright, registered, trademark, degree, bar, brokenbar, uni2113, dagger, daggerdbl, estimated, uni2116, asciicircum, globeWithMeridians, house, uni21EA, uni2327, uni232B, uni2326, uni2328, uni23CE, uni218B, uni218A, section.tosf, degree.tosf, dagger.tosf, daggerdbl.tosf, ampersand_ampersand.liga, bar_bar.liga, bar_bar_bar_greater.liga, bar_bar_equal.liga, bar_bar_greater.liga, bar_braceright.liga, bar_bracketright.liga, bar_hyphen.liga, bar_equal.liga, bar_greater.liga, asciicircum_equal.liga, dollar_greater.liga, plus_plus.liga, plus_plus_plus.liga, plus_greater.liga, equal_colon_equal.liga, equal_exclam_equal.liga, equal_equal.liga, equal_equal_equal.liga, equal_equal_greater.liga, equal_greater.liga, equal_greater_greater.liga, equal_less_less.liga, equal_slash_equal.liga, greater_colon.liga, greater_hyphen.liga, greater_hyphen_greater.liga, greater_equal.liga, greater_equal_greater.liga, greater_greater.liga, greater_greater_hyphen.liga, greater_greater_equal.liga, greater_greater_greater.liga, less_asterisk.liga, less_asterisk_greater.liga, less_bar.liga, less_bar_bar.liga, less_bar_bar_bar.liga, less_bar_greater.liga, less_colon.liga, less_dollar.liga, less_dollar_greater.liga, less_exclam_hyphen_hyphen.liga, less_hyphen.liga, less_hyphen_hyphen.liga, less_hyphen_greater.liga, less_hyphen_less.liga, less_plus.liga, less_plus_greater.liga, less_equal.liga, less_equal_equal.liga, less_equal_equal_greater.liga, less_equal_greater.liga, less_equal_less.liga, less_greater.liga, less_less.liga, less_less_hyphen.liga, less_less_equal.liga, less_less_less.liga, less_asciitilde.liga, less_asciitilde_greater.liga, less_asciitilde_asciitilde.liga, less_slash.liga, less_slash_greater.liga, asciitilde_at.liga, asciitilde_hyphen.liga, asciitilde_equal.liga, asciitilde_greater.liga, asciitilde_asciitilde.liga, asciitilde_asciitilde_greater.liga, percent_percent.liga, uni03F6, uni0374, uni0375, uni0308, uni0307, gravecomb, acutecomb, uni030B, uni0302, uni030C, uni0306, uni030A, tildecomb, uni0304, uni0305, uni030F, uni0313, uni0314, uni0326, uni0327, strokeshortoverlay, strokelongoverlay, uni0326.case, uni02BC, uni02BA, uni02C9, uni02B9, acute, breve, caron, cedilla, circumflex, dieresis, dotaccent, grave, hungarumlaut, macron, ogonek, ring, tilde, caron.alt, acute.case, breve.case, caron.case, cedilla.case, circumflex.case, dieresis.case, dotaccent.case, grave.case, hungarumlaut.case, macron.case, ring.case, tilde.case, acute.loclPLK, acute.case.loclPLK, ogonek.thin, uni0342, uni0345, tonos, tonos.case, dieresistonos, uni1FBF, uni1FBD, uni1FFE, uni1FCD, uni1FDD, uni1FCE, uni1FDE, uni1FCF, uni1FDF, uni1FED, uni1FEE, uni1FC1, uni1FEF, uni1FFD, uni1FC0, uni1FEF.case, uni1FFD.case, LIG, TseHelpercy, tsehelpercy, descRoundcy, descStraightcy, descStraightcy.case, brevecy, brevecy.case, null, dieresisacutecomb, dieresisgravecomb, descTailcy.case, KsicyHELPER, hookHELPER, hookHELPER.case, ksicyHELPER, dieresistilde, _part.greater, _part.question, _part.ampersand, _part.less2, _part.greater2, _part.asterisk, _part.plus, _part.dot, uniE000, uniE001, uniE002, uniE003, uniE0A0, uniE0A1, uniE0A2, uniE0B0, uniE0B1, uniE0B2, uniE0B3 [code: should-be-monospaced]
  • WARN Double-width and/or zero-width glyphs were detected. These glyphs should be set to the same width as all others and then add GPOS single pos lookups that zeros/doubles the widths as needed: uni200B, uniFEFF, uni0308, uni0307, gravecomb, acutecomb, uni030B, uni0302, uni030C, uni0306, uni030A, tildecomb, uni0304, uni0305, uni030F, uni0313, uni0314, uni0326, uni0327, uni0342, uni0345, null, uniE000, uniE001, uniE002 [code: variable-monospaced]
WARN: Does GPOS table have kerning information?
💤 SKIP: Check copyright namerecords match license file.
💤 SKIP: Checks METADATA.pb font.name field matches family name declared on the name table.
💤 SKIP: Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.
💤 SKIP: METADATA.pb font.full_name value matches fullname declared on the name table?
💤 SKIP: METADATA.pb font.name value should be same as the family name declared on the name table.
💤 SKIP: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
💤 SKIP: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
💤 SKIP: METADATA.pb font.name field contains font name in right format?
💤 SKIP: METADATA.pb font.full_name field contains font name in right format?
💤 SKIP: METADATA.pb font.filename field contains font name in right format?
💤 SKIP: METADATA.pb font.post_script_name field contains font name in right format?
💤 SKIP: Copyright notices match canonical pattern in METADATA.pb
💤 SKIP: Copyright notice on METADATA.pb should not contain 'Reserved Font Name'.
💤 SKIP: METADATA.pb: Copyright notice shouldn't exceed 500 chars.
💤 SKIP: METADATA.pb: Filename is set canonically?
💤 SKIP: METADATA.pb font.style "italic" matches font internals?
💤 SKIP: METADATA.pb font.style "normal" matches font internals?
💤 SKIP: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
💤 SKIP: METADATA.pb: Check if fontname is not camel cased.
💤 SKIP: METADATA.pb: Check font name is the same as family name.
💤 SKIP: METADATA.pb: Check that font weight has a canonical value.
💤 SKIP: Checking OS/2 usWeightClass matches weight specified at METADATA.pb.
💤 SKIP: METADATA.pb weight matches postScriptName.
💤 SKIP: METADATA.pb: Font styles are named canonically?
💤 SKIP: Version number has increased since previous release on Google Fonts?
💤 SKIP: Glyphs are similiar to Google Fonts version?
💤 SKIP: Check font has same encoded glyphs as version hosted on fonts.google.com
💤 SKIP: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
💤 SKIP: Check a static ttf can be generated from a variable font.
💤 SKIP: Check that variable fonts have an HVAR table.
💤 SKIP: All name entries referenced by fvar instances exist on the name table?
💤 SKIP: A variable font must have named instances.
💤 SKIP: Variable font weight coordinates must be multiples of 100.
💤 SKIP: Are there caret positions declared for every ligature?
💤 SKIP: Is there kerning info for non-ligated sequences?
💤 SKIP: FontForge validation outputs error messages?
💤 SKIP: FontForge checks.
💤 SKIP: Is the CFF subr/gsubr call depth > 10?
💤 SKIP: Is the CFF2 subr/gsubr call depth > 10?
💤 SKIP: CFF table FontName must match name table ID 6 (PostScript name).
💤 SKIP: The variable font 'wght' (Weight) axis coordinate must be 400 on the 'Regular' instance.
💤 SKIP: The variable font 'wdth' (Width) axis coordinate must be 100 on the 'Regular' instance.
💤 SKIP: The variable font 'slnt' (Slant) axis coordinate must be zero on the 'Regular' instance.
💤 SKIP: The variable font 'ital' (Italic) axis coordinate must be zero on the 'Regular' instance.
💤 SKIP: The variable font 'opsz' (Optical Size) axis coordinate should be between 9 and 13 on the 'Regular' instance.
💤 SKIP: The variable font 'wght' (Weight) axis coordinate must be 700 on the 'Bold' instance.
💤 SKIP: The variable font 'wght' (Weight) axis coordinate must be within spec range of 1 to 1000 on all instances.
INFO: Show hinting filesize impact.
static/FiraCode-Regular.ttf
Dehinted Size 160.0kb
Hinted Size 216.6kb
Increase 56.6kb
Change 35.3 %
INFO: EPAR table present in font?
INFO: Is 'gasp' table set to optimize rendering?

PPM <= 65535: flag = 0x0F - Use gridfitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

  • 🍞 PASS 'gasp' table is correctly set, with one gaspRange:value of 0xFFFF:0x0F.
INFO: Check for font-v versioning
  • com.google.fonts/check/fontv
  • INFO Version string is: "Version 1.207; ttfautohint (v1.8.2) -l 8 -r 50 -G 200 -x 14 -D latn -f none -a nnn -X """ The version string must ideally include a git commit hash and either a 'dev' or a 'release' suffix such as in the example below: "Version 1.3; git-0d08353-release"
INFO: Font contains all required tables?
  • com.google.fonts/check/required_tables
  • INFO This font contains the following optional tables [prep, DSIG, gasp, GSUB, fpgm, loca, cvt , GPOS]
  • 🍞 PASS Font contains all required tables.
🍞 PASS: Checking file is named canonically.
🍞 PASS: Checking OS/2 fsType.
🍞 PASS: Substitute copyright, registered and trademark symbols in name table entries.
🍞 PASS: Checking OS/2 usWeightClass.
🍞 PASS: "License URL matches License text on name table?
🍞 PASS: Description strings in the name table must not exceed 200 characters.
🍞 PASS: Version format is correct in 'name' table?
🍞 PASS: Font has ttfautohint params?
🍞 PASS: Font has old ttfautohint applied?
🍞 PASS: Make sure family name does not begin with a digit.
🍞 PASS: Font has all expected currency sign characters?
🍞 PASS: Are there non-ASCII characters in ASCII-only NAME table entries?
🍞 PASS: Stricter unitsPerEm criteria for Google Fonts.
🍞 PASS: Checking OS/2 fsSelection value.
  • com.google.fonts/check/fsselection
  • 🍞 PASS OS/2 fsSelection REGULAR bit is properly set.
  • 🍞 PASS OS/2 fsSelection ITALIC bit is properly set.
  • 🍞 PASS OS/2 fsSelection BOLD bit is properly set.
🍞 PASS: Checking post.italicAngle value.
🍞 PASS: Checking head.macStyle value.
🍞 PASS: Font has all mandatory 'name' table entries ?
🍞 PASS: Check name table: FONT_FAMILY_NAME entries.
🍞 PASS: Check name table: FONT_SUBFAMILY_NAME entries.
🍞 PASS: Check name table: FULL_FONT_NAME entries.
🍞 PASS: Check name table: POSTSCRIPT_NAME entries.
🍞 PASS: Check name table: TYPOGRAPHIC_FAMILY_NAME entries.
🍞 PASS: Check name table: TYPOGRAPHIC_SUBFAMILY_NAME entries.
🍞 PASS: Length of copyright notice must not exceed 500 characters.
🍞 PASS: Familyname must be unique according to namecheck.fontdata.com
🍞 PASS: Font enables smart dropout control in "prep" table instructions?
🍞 PASS: There must not be VTT Talk sources in the font.
🍞 PASS: Are there unwanted Apple tables?
🍞 PASS: Combined length of family and style must not exceed 20 characters.
🍞 PASS: Name table records must not have trailing spaces.
🍞 PASS: Checking OS/2 usWinAscent & usWinDescent.
🍞 PASS: Checking OS/2 Metrics match hhea Metrics.
🍞 PASS: Checking with ftxvalidator.
🍞 PASS: Checking with ots-sanitize.
🍞 PASS: Font contains .notdef as first glyph?
🍞 PASS: Font contains glyphs for whitespace characters?
🍞 PASS: Font has **proper** whitespace glyph names?
🍞 PASS: Whitespace glyphs have ink?
🍞 PASS: Are there unwanted tables?
🍞 PASS: Font contains unique glyph names?
🍞 PASS: Checking with fontTools.ttx
🍞 PASS: Check all glyphs have codepoints assigned.
🍞 PASS: Checking unitsPerEm value is reasonable.
🍞 PASS: Checking font version fields (head and name table).
🍞 PASS: Check if OS/2 xAvgCharWidth is correct.
🍞 PASS: Check if OS/2 fsSelection matches head macStyle bold and italic bits.
🍞 PASS: Font has correct post table version (2 for TTF, 3 for OTF)?
🍞 PASS: Check name table for empty records.
🍞 PASS: Description strings in the name table must not contain copyright info.
🍞 PASS: Name table entries should not contain line-breaks.
🍞 PASS: Does full font name begin with the font family name?
🍞 PASS: Font follows the family naming recommendations?
🍞 PASS: Name table strings must not contain the string 'Reserved Font Name'.
🍞 PASS: Name table ID 6 (PostScript name) must be consistent across platforms.
🍞 PASS: Does the number of glyphs in the loca table match the maxp table?
🍞 PASS: Checking Vertical Metric Linegaps.
🍞 PASS: MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?
🍞 PASS: Does the font have a DSIG table?
🍞 PASS: Whitespace and non-breaking space have the same width?
🍞 PASS: Is there a "kern" table declared in the font?
🍞 PASS: Is there any unused data at the end of the glyf table?
🍞 PASS: Check for points out of bounds.

Summary

💔 ERROR 🔥 FAIL ⚠ WARN 💤 SKIP INFO 🍞 PASS
0 4 5 63 6 75
0% 3% 3% 41% 4% 49%