Noto Weight, Width naming, Numbering and Style naming specifications

Weights

LGC-mainstem-centric: Weight values applied to Masters and Instances are tied to the normal width of the lowercase mainstem of LGC “normal” width fonts. For condensed, expanded, or other width variants, the weight value should match the numeric value of the normal width accompanied by the master or instance.

If a Bold master or instance has a value of 190 (equivalent to the dominant lowercase mainstem), and the corresponding Bold Condensed master or instance has a dominant lowercase mainstem weight of 162 (in order to optically blend with the Bold), set both the Bold and Bold Condensed masters to 190. This way, the orthogonal interpolation spaces are easily blended.

alt_text Bold with weight value of 190, dominant lc mainstem of 190

alt_text Bold Condensed with weight value of 190, dominant lc mainstem of 162 {#bold-condensed-with-weight-value-of-190-dominant-lc-mainstem-of-162}

Widths

The range of width masters is smaller than the weight range. Widths are generally specified as differences from the regular or normal width design, thus we have a degree of condensed or expanded.

Normal width masters: 100 Narrow masters: 70 Semi Condensed: 89 True Condensed: 79 Extra Condensed: 70

If expanded widths will be required in the future, they might range between 120 and 130. A given width identifier in one script master would be designed to correspond to another script with the same width value.

Family, Style & Full Names {#family-style-&-full-names}

There are known string length limitations. For example, on Windows, the Family name used in menus and cannot exceed 31 characters. Similarly, Postscript names are limited to 63 characters according to the Open Font Format specification. Style names have typically been kept as short as possible as well, despite the lack of concrete guidance on limitations in specific implementations.

For this specification, the family and complete style names are not abbreviated. The software used for generating font files will create name table specific names and handle abbreviations where necessary.

Family Name

Noto (“Sans”/”Sans UI”/”Serif”) <Script-name><variant><UI>

Style Name

  1. The stylename is the combined font-stretch (width), font-weight, and font-style name, without spaces in the width and weight names, but with spaces in between the parts.
  2. If the width is not a normal sized width, it is optional to add the width before the weight However, Regular is replaced by the width name.
  3. For italics all style names end with “Italic” and are optionally preceded by the width and weight. However, Regular is not used in combination with Italic.

Weight Style Names

Thin 		usWeightClass: 100
ExtraLight 	usWeightClass: 200
Light 		usWeightClass: 300
Regular 	usWeightClass: 400
Medium 		usWeightClass: 500
SemiBold 	usWeightClass: 600
Bold 		usWeightClass: 700
ExtraBold 	usWeightClass: 800
Black 		usWeightClass: 900

Stretch Style Names

ExtraCondensed 	usWidthClass: 2
Condensed	usWidthClass: 3
SemiCondensed	usWidthClass: 4
(Normal)	usWidthClass: 5

Example Full names:

Noto Sans UI Thin
Noto Sans UI Bold Italic
Noto Sans UI Condensed ExtraBold Italic
Noto Serif Italic
Noto Sans Myanmar Thin
Noto Serif Myanmar SemiCondensed Light
Noto Serif Myanmar Condensed ExtraBold Italic

Shipping Instances

Instances need to be defined in the GlyphsApp sources that express the total number of variations in weight and width that can be accommodated by a given design. Some scripts will not have width variants. Some scripts will not be able to be made as bold as the boldest LGC master. The designer should specify those cases, and include only those instances that render well.

If the masters of a script not using the Latin alphabet are drawn and numbered to complement their corresponding LGC counterparts, the instance interpolation values should also match those of their corresponding LGC counterparts. Below is a table of weight and width values for each family.

Noto Sans interpolation values:
Thin Extra Light Light Regular Medium Semi Bold Bold Extra Bold Black
Normal 26, 100 39, 100 58, 100 90, 100 108, 100 128, 100 151, 100 169, 100 190, 100
Semi Cond. 26, 89 39, 89 58, 89 90, 89 108, 89 128, 89 151, 89 169, 89 190, 89
Cond. 26, 79 39, 79 58, 79 90, 79 108, 79 128, 79 151, 79 169, 79 190, 79
Extra Cond. 26, 70 39, 70 58, 70 90, 70 108, 70 128, 70 151, 70 169, 70 190, 70
Noto Serif interpolation values:
Thin Extra Light Light Regular Medium Semi Bold Bold Extra Bold Black
Normal 28, 100 42,100 64, 100 94, 100 110, 100 130, 100 152, 100 175, 100 194, 100
Semi Cond. 28, 89 42,89 64, 89 94, 89 110, 89 130, 89 152, 89 175, 89 194, 89
Cond. 28, 79 42,79 64, 79 94, 79 110, 79 130, 79 152, 79 175, 79 194, 79
Extra Cond. 28, 70 42,70 64, 70 94, 70 110, 70 130, 70 152, 70 175, 70 194, 70

Document and UI Font instances

For UI instances weight and width values will be copied from their corresponding Document font values. If a UI font is shifted to fit into the UI ascender and descender, the shift is stored as a custom parameter: a filter defining a YOffset transformation. Both UI and document instances may have “Keep Glyphs” custom parameters defining a Glyph subset. The “Reencode Glyphs” custom parameter may be used to change the default cmap encoding (added 2017).

Note: No matter which naming scheme is used, there will be differences between Noto Sans, Roboto, and Noto Sans CJK. Even if the “200” has the same weight as Noto Sans CJK Thin with the same name, it will not be the same as Roboto Thin. Roboto Black 900 matches Noto Sans Extra Bold 800. We can match Roboto Medium in name, class and weight. But Roboto Medium is halfway Regular and Bold: that means you cannot have a Medium and a Semi-Bold, because the weight of the Medium is almost the weight that the Semi Bold should have.

If the Noto Sans non-Latins UI fonts are linked to Roboto, it may not matter what they are named and what their widthClass is, when these properties are inherited from Roboto anyway.

OS/2 x-Height setting

All Noto Sans, Sans UI, Serif, Serif Display, fonts have a 536 x-height. Since these families have been designed to work together, the fonts should not be scaled to match relative heights. This is an explicit instance custom parameter for the master values to match the outline’s x-height needed for proper placement of anchors on lowercase glyphs. We will wait to request this functionality from Georg, until we get confirmation from Google that our approach will their needs.

Panose

The chart below shows the construction of the Noto values. See Noto Panose Details for more.

Family type 2 Latin Text for all
Serif Type 11 Sans Serif, 2 Cove Serif
Weight According to stem weight
Proportion* 2 normal and semi-cond., 6 Cond. and Extra-Cond., 9 for Monospaced
Contrast 4 Sans, 6 Serif, 8 Serif Display
Stroke 5 Gradual/Vertical for all
Arm 4 Sans, 5 Serif
Form 2 Roman, 9 Italic
Midline 2 Standard Trimmed for all
xHeight 4 Constant/Large for all

*The proportion value is a mix of stylistic properties and character width. It does not have a direct link to the width interpolation.

Style Linking

Bold _is **Bold** of_ Regular
Semi Condensed Bold _is **Bold** of _Semi Condensed
Condensed Bold _is **Bold** of_ Condensed
Extra Condensed Bold _is **Bold** of_ Extra Condensed
Bold Italic _is **Bold** and *Italic* of_ Regular
Semi Condensed Bold Italic _is **Bold** and *Italic* of _Semi Condensed
Condensed Bold Italic _is **Bold** and *Italic* of_ Condensed
Extra Condensed Bold Italic _is **Bold** and *Italic* of_ Extra Condensed
Other Italics are Italic of the equivalent roman instances

Monotype Feature Files naming

Name the files with the family name, followed by the master weight and width interpolation values and table tag. For GSUB files that apply to all weights, the interpolation values will be omitted. Where a GSUB source file is tied to specific masters, use the nearest GSUB for intermediate instances. GPOS values tables will typically apply to a single master. The GPOS tables for intermediate instances will need to be interpolated from existing masters.

For Example:

  • Noto Sans Sinhala GDEF.txt
  • Noto Sans Sinhala GSUB.txt
  • Noto Sans Sinhala 58-100 GPOS.txt
  • Noto Sans Devanagari 90-100 GSUB.txt

Glyphs

The glyph order is defined by a custom parameter at the font level.

Composite component glyphs that are never rendered on their own are not set to export. To distinguish between component glyphs that can be used as a component glyph in TrueType (and might be exported) and those that cannot, add an underscore to the beginning of glyphs that cannot be used as a component glyph.

Without the custom parameter “don’t use production names” is True, the source glyph names are expected to be renamed where needed. With the parameter, the “nice names” of the Glyphs source file are used with the layout table source files too and should be valid glyph names with regards to length and used characters.

###

The following table is not part of the specification:

Comparison of interpolation values

The table puts the interpolation weights of the above proposal side by side with the estimated values of Roboto and Noto Sans CJK. It is interesting to see how these values compare if there were an attempt to support the 9 weights as defined in the CSS font-weight property. There is a regular weight at 90. There cannot be as many weights below the regular weight as calculated by Pablo Impallari’s and Luc de Groot’s formulas. However, two intermediate light weights fit in easily. For practical uses, having 4 weights above the regular is sufficient. But having 3 below the regular is important to have a lighter light that is useable. The extremely thin master isn’t very usable apart from it’s UI function.

The master weights Updated proposal Noto Sans LCG Noto Sans CJK Roboto CSS font-weightin 9 equal steps CSS font-weight in 9 non-linear steps: Impallari method CSS font-weight in 9 non-linear steps: Luc(as) method Jelle’s 9 alternative trial and error and educated guess steps
26 26 26 26 26 26 26
35 35 33
39 (new) 40
47 49 43
58 58 59 55 60
67 67
70
80
90 90 91 92 88 89 90 90
106
108
118 114 120 114 116
124
129
141 146 145 141
151 149 148 151
165 167 170 167 169
177
190 190 190 190 190 190

Noto Panose Details

normal width semi condensed condensed extra Condensed
2 old style 2 old style 6 condensed 6 condensed
interpl. 100 89 79 70
Sans
summary 26 2 11 2 2 4 5 4 2 2 4 2 11 2 2 4 5 4 2 2 4 2 11 2 6 4 5 4 2 2 4 2 11 2 6 4 5 4 2 2 4
39 2 11 3 2 4 5 4 2 2 4 2 11 3 2 4 5 4 2 2 4 2 11 3 6 4 5 4 2 2 4 2 11 3 6 4 5 4 2 2 4
Family type 2 Latin Text for all 58 2 11 4 2 4 5 4 2 2 4 2 11 4 2 4 5 4 2 2 4 2 11 4 6 4 5 4 2 2 4 2 11 4 6 4 5 4 2 2 4
Serif Type 11 Sans Serif, 2 Cove Serif 90 2 11 5 2 4 5 4 2 2 4 2 11 5 2 4 5 4 2 2 4 2 11 5 6 4 5 4 2 2 4 2 11 5 6 4 5 4 2 2 4
Weight According to stem weight 106 2 11 6 2 4 5 4 2 2 4 2 11 6 2 4 5 4 2 2 4 2 11 6 6 4 5 4 2 2 4 2 11 6 6 4 5 4 2 2 4
Proportion 2 normal and semi-cond., 6 Cond and Extra-Cond, 9 for Monospaced 119 2 11 6 2 4 5 4 2 2 4 2 11 6 2 4 5 4 2 2 4 2 11 6 6 4 5 4 2 2 4 2 11 6 6 4 5 4 2 2 4
Contrast 4 Sans, 6 Serif, 8 Serif Display 124 2 11 7 2 4 5 4 2 2 4 2 11 7 2 4 5 4 2 2 4 2 11 7 6 4 5 4 2 2 4 2 11 7 6 4 5 4 2 2 4
Stroke 5 Gradual/Vertical for all 141 2 11 8 2 4 5 4 2 2 4 2 11 8 2 4 5 4 2 2 4 2 11 8 6 4 5 4 2 2 4 2 11 8 6 4 5 4 2 2 4
Arm 4 Sans, 5 Serif 151 2 11 8 2 4 5 4 2 2 4 2 11 8 2 4 5 4 2 2 4 2 11 8 6 4 5 4 2 2 4 2 11 8 6 4 5 4 2 2 4
Form 2 Roman, 9 Italic 165 2 11 9 2 4 5 4 2 2 4 2 11 9 2 4 5 4 2 2 4 2 11 9 6 4 5 4 2 2 4 2 11 9 6 4 5 4 2 2 4
Midline 2 Standard Trimmed for all 190 2 11 10 2 4 5 4 2 2 4 2 11 10 2 4 5 4 2 2 4 2 11 10 6 4 5 4 2 2 4 2 11 10 6 4 5 4 2 2 4
xHeight 4 Constant/Large for all
Sans Italic
26 2 11 9 2 4 5 4 9 2 4 2 11 9 2 4 5 4 9 2 4 2 11 2 6 4 5 4 9 2 4 2 11 2 6 4 5 4 9 2 4
39 2 11 3 2 4 5 4 9 2 4 2 11 3 2 4 5 4 9 2 4 2 11 3 6 4 5 4 9 2 4 2 11 3 6 4 5 4 9 2 4
58 2 11 4 2 4 5 4 9 2 4 2 11 4 2 4 5 4 9 2 4 2 11 4 6 4 5 4 9 2 4 2 11 4 6 4 5 4 9 2 4
90 2 11 5 2 4 5 4 9 2 4 2 11 5 2 4 5 4 9 2 4 2 11 5 6 4 5 4 9 2 4 2 11 5 6 4 5 4 9 2 4
106 2 11 6 2 4 5 4 9 2 4 2 11 6 2 4 5 4 9 2 4 2 11 6 6 4 5 4 9 2 4 2 11 6 6 4 5 4 9 2 4
119 2 11 6 2 4 5 4 9 2 4 2 11 6 2 4 5 4 9 2 4 2 11 6 6 4 5 4 9 2 4 2 11 6 6 4 5 4 9 2 4
124 2 11 7 2 4 5 4 9 2 4 2 11 7 2 4 5 4 9 2 4 2 11 7 6 4 5 4 9 2 4 2 11 7 6 4 5 4 9 2 4
141 2 11 8 2 4 5 4 9 2 4 2 11 8 2 4 5 4 9 2 4 2 11 8 6 4 5 4 9 2 4 2 11 8 6 4 5 4 9 2 4
151 2 11 8 2 4 5 4 9 2 4 2 11 8 2 4 5 4 9 2 4 2 11 8 6 4 5 4 9 2 4 2 11 8 6 4 5 4 9 2 4
165 2 11 9 2 4 5 4 9 2 4 2 11 9 2 4 5 4 9 2 4 2 11 9 6 4 5 4 9 2 4 2 11 9 6 4 5 4 9 2 4
190 2 11 10 2 4 5 4 9 2 4 2 11 10 2 4 5 4 9 2 4 2 11 10 6 4 5 4 9 2 4 2 11 10 6 4 5 4 9 2 4
Serif
28 2 2 2 2 6 5 5 2 2 4 2 2 2 2 6 5 5 2 2 4 2 2 2 6 6 5 5 2 2 4 2 2 2 6 6 5 5 2 2 4
42 2 2 3 2 6 5 5 2 2 4 2 2 3 2 6 5 5 2 2 4 2 2 3 6 6 5 5 2 2 4 2 2 3 6 6 5 5 2 2 4
64 2 2 4 2 6 5 5 2 2 4 2 2 4 2 6 5 5 2 2 4 2 2 4 6 6 5 5 2 2 4 2 2 4 6 6 5 5 2 2 4
94 2 2 5 2 6 5 5 2 2 4 2 2 5 2 6 5 5 2 2 4 2 2 5 6 6 5 5 2 2 4 2 2 5 6 6 5 5 2 2 4
2 2 6 2 6 5 5 2 2 4 2 2 6 2 6 5 5 2 2 4 2 2 6 6 6 5 5 2 2 4 2 2 6 6 6 5 5 2 2 4
2 2 6 2 6 5 5 2 2 4 2 2 6 2 6 5 5 2 2 4 2 2 6 6 6 5 5 2 2 4 2 2 6 6 6 5 5 2 2 4
125 2 2 7 2 6 5 5 2 2 4 2 2 7 2 6 5 5 2 2 4 2 2 7 6 6 5 5 2 2 4 2 2 7 6 6 5 5 2 2 4
2 2 8 2 6 5 5 2 2 4 2 2 8 2 6 5 5 2 2 4 2 2 8 6 6 5 5 2 2 4 2 2 8 6 6 5 5 2 2 4
152 2 2 8 2 6 5 5 2 2 4 2 2 8 2 6 5 5 2 2 4 2 2 8 6 6 5 5 2 2 4 2 2 8 6 6 5 5 2 2 4
175 2 2 9 2 6 5 5 2 2 4 2 2 9 2 6 5 5 2 2 4 2 2 9 6 6 5 5 2 2 4 2 2 9 6 6 5 5 2 2 4
194 2 2 10 2 6 5 5 2 2 4 2 2 10 2 6 5 5 2 2 4 2 2 10 6 6 5 5 2 2 4 2 2 10 6 6 5 5 2 2 4
Serif Italic
28 2 2 2 2 6 5 5 9 2 4 2 2 2 2 6 5 5 9 2 4 2 2 2 6 6 5 5 9 2 4 2 2 2 6 6 5 5 9 2 4
42 2 2 3 2 6 5 5 9 2 4 2 2 3 2 6 5 5 9 2 4 2 2 3 6 6 5 5 9 2 4 2 2 3 6 6 5 5 9 2 4
64 2 2 4 2 6 5 5 9 2 4 2 2 4 2 6 5 5 9 2 4 2 2 4 6 6 5 5 9 2 4 2 2 4 6 6 5 5 9 2 4
94 2 2 5 2 6 5 5 9 2 4 2 2 5 2 6 5 5 9 2 4 2 2 5 6 6 5 5 9 2 4 2 2 5 6 6 5 5 9 2 4
2 2 6 2 6 5 5 9 2 4 2 2 6 2 6 5 5 9 2 4 2 2 6 6 6 5 5 9 2 4 2 2 6 6 6 5 5 9 2 4
2 2 6 2 6 5 5 9 2 4 2 2 6 2 6 5 5 9 2 4 2 2 6 6 6 5 5 9 2 4 2 2 6 6 6 5 5 9 2 4
125 2 2 7 2 6 5 5 9 2 4 2 2 7 2 6 5 5 9 2 4 2 2 7 6 6 5 5 9 2 4 2 2 7 6 6 5 5 9 2 4
2 2 8 2 6 5 5 9 2 4 2 2 8 2 6 5 5 9 2 4 2 2 8 6 6 5 5 9 2 4 2 2 8 6 6 5 5 9 2 4
152 2 2 8 2 6 5 5 9 2 4 2 2 8 2 6 5 5 9 2 4 2 2 8 6 6 5 5 9 2 4 2 2 8 6 6 5 5 9 2 4
175 2 2 9 2 6 5 5 9 2 4 2 2 9 2 6 5 5 9 2 4 2 2 9 6 6 5 5 9 2 4 2 2 9 6 6 5 5 9 2 4
194 2 2 10 2 6 5 5 9 2 4 2 2 10 2 6 5 5 9 2 4 2 2 10 6 6 5 5 9 2 4 2 2 10 6 6 5 5 9 2 4
Display Serif
28 2 2 2 2 8 5 5 2 2 4 2 2 2 2 8 5 5 2 2 4 2 2 2 6 8 5 5 2 2 4 2 2 2 6 8 5 5 2 2 4
42 2 2 3 2 8 5 5 2 2 4 2 2 3 2 8 5 5 2 2 4 2 2 3 6 8 5 5 2 2 4 2 2 3 6 8 5 5 2 2 4
64 2 2 4 2 8 5 5 2 2 4 2 2 4 2 8 5 5 2 2 4 2 2 4 6 8 5 5 2 2 4 2 2 4 6 8 5 5 2 2 4
94 2 2 5 2 8 5 5 2 2 4 2 2 5 2 8 5 5 2 2 4 2 2 5 6 8 5 5 2 2 4 2 2 5 6 8 5 5 2 2 4
2 2 6 2 8 5 5 2 2 4 2 2 6 2 8 5 5 2 2 4 2 2 6 6 8 5 5 2 2 4 2 2 6 6 8 5 5 2 2 4
2 2 6 2 8 5 5 2 2 4 2 2 6 2 8 5 5 2 2 4 2 2 6 6 8 5 5 2 2 4 2 2 6 6 8 5 5 2 2 4
125 2 2 7 2 8 5 5 2 2 4 2 2 7 2 8 5 5 2 2 4 2 2 7 6 8 5 5 2 2 4 2 2 7 6 8 5 5 2 2 4
2 2 8 2 8 5 5 2 2 4 2 2 8 2 8 5 5 2 2 4 2 2 8 6 8 5 5 2 2 4 2 2 8 6 8 5 5 2 2 4
152 2 2 8 2 8 5 5 2 2 4 2 2 8 2 8 5 5 2 2 4 2 2 8 6 8 5 5 2 2 4 2 2 8 6 8 5 5 2 2 4
175 2 2 9 2 8 5 5 2 2 4 2 2 9 2 8 5 5 2 2 4 2 2 9 6 8 5 5 2 2 4 2 2 9 6 8 5 5 2 2 4
194 2 2 10 2 8 5 5 2 2 4 2 2 10 2 8 5 5 2 2 4 2 2 10 6 8 5 5 2 2 4 2 2 10 6 8 5 5 2 2 4
Display Serif Italic
28 2 2 2 2 8 5 5 9 2 4 2 2 2 2 8 5 5 9 2 4 2 2 2 6 8 5 5 9 2 4 2 2 2 6 8 5 5 9 2 4
42 2 2 3 2 8 5 5 9 2 4 2 2 3 2 8 5 5 9 2 4 2 2 3 6 8 5 5 9 2 4 2 2 3 6 8 5 5 9 2 4
64 2 2 4 2 8 5 5 9 2 4 2 2 4 2 8 5 5 9 2 4 2 2 4 6 8 5 5 9 2 4 2 2 4 6 8 5 5 9 2 4
94 2 2 5 2 8 5 5 9 2 4 2 2 5 2 8 5 5 9 2 4 2 2 5 6 8 5 5 9 2 4 2 2 5 6 8 5 5 9 2 4
2 2 6 2 8 5 5 9 2 4 2 2 6 2 8 5 5 9 2 4 2 2 6 6 8 5 5 9 2 4 2 2 6 6 8 5 5 9 2 4
2 2 6 2 8 5 5 9 2 4 2 2 6 2 8 5 5 9 2 4 2 2 6 6 8 5 5 9 2 4 2 2 6 6 8 5 5 9 2 4
125 2 2 7 2 8 5 5 9 2 4 2 2 7 2 8 5 5 9 2 4 2 2 7 6 8 5 5 9 2 4 2 2 7 6 8 5 5 9 2 4
2 2 8 2 8 5 5 9 2 4 2 2 8 2 8 5 5 9 2 4 2 2 8 6 8 5 5 9 2 4 2 2 8 6 8 5 5 9 2 4
152 2 2 8 2 8 5 5 9 2 4 2 2 8 2 8 5 5 9 2 4 2 2 8 6 8 5 5 9 2 4 2 2 8 6 8 5 5 9 2 4
175 2 2 9 2 8 5 5 9 2 4 2 2 9 2 8 5 5 9 2 4 2 2 9 6 8 5 5 9 2 4 2 2 9 6 8 5 5 9 2 4
194 2 2 10 2 8 5 5 9 2 4 2 2 10 2 8 5 5 9 2 4 2 2 10 6 8 5 5 9 2 4 2 2 10 6 8 5 5 9 2 4