fvar

com.adobe.fonts/check/varfont/distinct_instance_records[source][source]

Validates that all of the instance records in a given font have distinct data.

Rationale:

According to the ‘fvar’ documentation in OpenType spec v1.9 https://docs.microsoft.com/en-us/typography/opentype/spec/fvar

All of the instance records in a font should have distinct coordinates and distinct subfamilyNameID and postScriptName ID values. If two or more records share the same coordinates, the same nameID values or the same postScriptNameID values, then all but the first can be ignored.

com.adobe.fonts/check/varfont/foundry_defined_tag_name[source][source]

Validate foundry-defined design-variation axis tag names.

Rationale:

According to the Open-Type spec’s syntactic requirements for foundry-defined design-variation axis tags available at https://learn.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg

Foundry-defined tags must begin with an uppercase letter and must use only uppercase letters or digits.

com.adobe.fonts/check/varfont/same_size_instance_records[source][source]

Validates that all of the instance records in a given font have the same size.

Rationale:

According to the ‘fvar’ documentation in OpenType spec v1.9 https://docs.microsoft.com/en-us/typography/opentype/spec/fvar

All of the instance records in a given font must be the same size, with all either including or omitting the postScriptNameID field. […] If the value is 0xFFFF, then the value is ignored, and no PostScript name equivalent is provided for the instance.

com.adobe.fonts/check/varfont/valid_axis_nameid[source][source]

Validates that the value of axisNameID used by each VariationAxisRecord is greater than 255 and less than 32768.

Rationale:

According to the ‘fvar’ documentation in OpenType spec v1.9 https://docs.microsoft.com/en-us/typography/opentype/spec/fvar

The axisNameID field provides a name ID that can be used to obtain strings from the ‘name’ table that can be used to refer to the axis in application user interfaces. The name ID must be greater than 255 and less than 32768.

com.adobe.fonts/check/varfont/valid_default_instance_nameids[source][source]

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.

Rationale:

According to the ‘fvar’ documentation in OpenType spec v1.9.1 https://docs.microsoft.com/en-us/typography/opentype/spec/fvar

The default instance of a font is that instance for which the coordinate value of each axis is the defaultValue specified in the corresponding variation axis record. An instance record is not required for the default instance, though an instance record can be provided. When enumerating named instances, the default instance should be enumerated even if there is no corresponding instance record. If an instance record is included for the default instance (that is, an instance record has coordinates set to default values), then the nameID value should be set to either 2 or 17 or to a name ID with the same value as name ID 2 or 17. Also, if a postScriptNameID is included in instance records, and the postScriptNameID value should be set to 6 or to a name ID with the same value as name ID 6.

com.adobe.fonts/check/varfont/valid_postscript_nameid[source][source]

Validates that the value of postScriptNameID used by each InstanceRecord is 6, 0xFFFF, or greater than 255 and less than 32768.

Rationale:

According to the ‘fvar’ documentation in OpenType spec v1.9 https://docs.microsoft.com/en-us/typography/opentype/spec/fvar

The postScriptNameID field provides a name ID that can be used to obtain strings from the ‘name’ table that can be treated as equivalent to name ID 6 (PostScript name) strings for the given instance. Values of 6 and 0xFFFF can be used; otherwise, values must be greater than 255 and less than 32768.

com.adobe.fonts/check/varfont/valid_subfamily_nameid[source][source]

Validates that the value of subfamilyNameID used by each InstanceRecord is 2, 17, or greater than 255 and less than 32768.

Rationale:

According to the ‘fvar’ documentation in OpenType spec v1.9 https://docs.microsoft.com/en-us/typography/opentype/spec/fvar

The subfamilyNameID field provides a name ID that can be used to obtain strings from the ‘name’ table that can be treated as equivalent to name ID 17 (typographic subfamily) strings for the given instance. Values of 2 or 17 can be used; otherwise, values must be greater than 255 and less than 32768.

com.google.fonts/check/varfont/bold_wght_coord[source][source]

The variable font ‘wght’ (Weight) axis coordinate must be 700 on the ‘Bold’ instance.

Rationale:

The Open-Type spec’s registered design-variation tag ‘wght’ available at https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght does not specify a required value for the ‘Bold’ instance of a variable font.

But Dave Crossland suggested that we should enforce a required value of 700 in this case (NOTE: a distinction is made between “no bold instance present” vs “bold instance is present but its wght coordinate is not == 700”).

com.google.fonts/check/varfont/regular_ital_coord[source][source]

The variable font ‘ital’ (Italic) axis coordinate must be zero on the ‘Regular’ instance.

Rationale:

According to the Open-Type spec’s registered design-variation tag ‘ital’ available at https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_ital

If a variable font has a ‘ital’ (Italic) axis, then the coordinate of its ‘Regular’ instance is required to be zero.

com.google.fonts/check/varfont/regular_opsz_coord[source][source]

The variable font ‘opsz’ (Optical Size) axis coordinate should be between 10 and 16 on the ‘Regular’ instance.

Rationale:

According to the Open-Type spec’s registered design-variation tag ‘opsz’ available at https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_opsz

If a variable font has an ‘opsz’ (Optical Size) axis, then the coordinate of its ‘Regular’ instance is recommended to be a value in the range 10 to 16.

com.google.fonts/check/varfont/regular_slnt_coord[source][source]

The variable font ‘slnt’ (Slant) axis coordinate must be zero on the ‘Regular’ instance.

Rationale:

According to the Open-Type spec’s registered design-variation tag ‘slnt’ available at https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_slnt

If a variable font has a ‘slnt’ (Slant) axis, then the coordinate of its ‘Regular’ instance is required to be zero.

com.google.fonts/check/varfont/regular_wdth_coord[source][source]

The variable font ‘wdth’ (Width) axis coordinate must be 100 on the ‘Regular’ instance.

Rationale:

According to the Open-Type spec’s registered design-variation tag ‘wdth’ available at https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wdth

If a variable font has a ‘wdth’ (Width) axis, then the coordinate of its ‘Regular’ instance is required to be 100.

com.google.fonts/check/varfont/regular_wght_coord[source][source]

The variable font ‘wght’ (Weight) axis coordinate must be 400 on the ‘Regular’ instance.

Rationale:

According to the Open-Type spec’s registered design-variation tag ‘wght’ available at https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght

If a variable font has a ‘wght’ (Weight) axis, then the coordinate of its ‘Regular’ instance is required to be 400.

com.google.fonts/check/varfont/slnt_range[source][source]

The variable font ‘slnt’ (Slant) axis coordinate specifies positive values in its range?

Rationale:

The OpenType spec says at https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_slnt that:

[…] the scale for the Slant axis is interpreted as the angle of slant in counter-clockwise degrees from upright. This means that a typical, right-leaning oblique design will have a negative slant value. This matches the scale used for the italicAngle field in the post table.

com.google.fonts/check/varfont/wdth_valid_range[source][source]

The variable font ‘wdth’ (Width) axis coordinate must strictly greater than zero.

Rationale:

According to the Open-Type spec’s registered design-variation tag ‘wdth’ available at https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wdth

On the ‘wdth’ (Width) axis, the valid numeric range is strictly greater than zero.

com.google.fonts/check/varfont/wght_valid_range[source][source]

The variable font ‘wght’ (Weight) axis coordinate must be within spec range of 1 to 1000 on all instances.

Rationale:

According to the Open-Type spec’s registered design-variation tag ‘wght’ available at https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght

On the ‘wght’ (Weight) axis, the valid coordinate range is 1-1000.

com.typenetwork/check/varfont/ital_range[source][source]

The variable font ‘ital’ (Italic) axis coordinates is in a valid range?

Rationale:

The OpenType spec says at https://learn.microsoft.com/en-us/typography/opentype/spec/dvaraxistag_ital that:

[…] Valid numeric range: Values must be in the range 0 to 1.

  • EXPERIMENTAL: Since 2024/Jan/12. Please provide feedback!