Skip to main content

Italic Fonts

This document provides a comprehensive reference table of real-world font examples organized by italic detection scenarios. Each scenario represents a different way that font families can implement italic styles, from traditional static fonts to modern variable fonts with complex axis configurations.

The table serves as a practical testing and validation resource for developers implementing italic detection logic, offering concrete examples from the Google Fonts registry (2025) with direct links to font specimens. Understanding these scenarios is crucial for building robust font parsing systems that can handle the full spectrum of italic implementations found in production fonts.

scenariodescriptionnon-italic examplesitalic examplesmethodnotes
1. One static fontSingle static font file without variable axes. Italic may or may not be present.Allerta-Regular.ttf (Google Fonts)Molle-Italic.ttf (Google Fonts)OS/2Only 1 font (Molle) with italic-only scenario out of 1,885 fonts (2025 Google Fonts registry)
2. Many static fontsMultiple static font files, some designated as italic/oblique variants.PTSerif-Regular.ttf, PTSerif-Bold.ttf (Google Fonts)PTSerif-Italic.ttf, PTSerif-BoldItalic.ttf (Google Fonts)OS/2Most common scenario for traditional font families
3. One variable fontSingle variable font with ital or slnt axes for smooth italic interpolation.Geist-VariableFont_wght.ttf (Google Fonts)EB Garamond (legacy) (Google Fonts Knowledge)ital axisGoogle Fonts claims "EB Garamond" as VF font with supports ital (0) axis support, but Google Fonts has dropped the ital axis and none are found in current registry. This may still exist on non-Google Fonts; we will support and treat ital axis when encountered.
3-1. Variable font with italic instancesSingle variable font with slnt axis and explicit italic instances in fvar.instances.Recursive-VariableFont_CASL,CRSV,MONO,slnt,wght.ttf (Google Fonts)
RobotoFlex-VariableFont_GRAD,XOPQ,XTRA,YOPQ,YTAS,YTDE,YTFI,YTLC,YTUC,opsz,slnt,wdth,wght.ttf (Google Fonts)
Same files with italic instances via slnt axis and fvar.instancesfvar.instancesExceptional case: Not "italic" by OS/2 flags, but supports slnt (~15) axis with explicit italic instances. Detection relies on PostScript names in fvar.instances rather than reliable table sources.
4. Two variable fontsSeparate Roman VF + Italic VF, switching between them based on style.Inter-VariableFont_opsz,wght.ttf (Google Fonts)
NotoSans-VariableFont_wdth,wght.ttf (Google Fonts)
Inter-Italic-VariableFont_opsz,wght.ttf (Google Fonts)
NotoSans-Italic-VariableFont_wdth,wght.ttf (Google Fonts)
OS/2~160 variable fonts with exactly 2 variants (2025 Google Fonts registry). When 2 VF variants exist, they are explicitly ["regular", "italic"].

1. One static font

fontTTFFont Subfamily (nameID 2)PostScript Name (nameID 6)fsSelectionitalslntitalic
MolleMolle-Italic.ttfRegularMolle-Regular00000000 00000001--✓ (bit 0 set)

2. Many static fonts

fontTTFFont Subfamily (nameID 2)PostScript Name (nameID 6)fsSelectionitalslntitalic
PTSerifPTSerif-Regular.ttf"Regular""PTSerif-Regular"00000000 01000000--false
PTSerifPTSerif-Bold.ttf"Bold""PTSerif-Bold"00000000 00100000--false
PTSerifPTSerif-Italic.ttf"Italic""PTSerif-Italic"00000000 00000001--true
PTSerifPTSerif-BoldItalic.ttf"Bold Italic""PTSerif-BoldItalic"00000000 00100001--true

3. One variable font

N/A

3-1. Variable font with italic instances

fontTTFFont Subfamily (nameID 2)PostScript Name (nameID 6)fsSelectionitalslntitalic
Roboto FlexRobotoFlex-VariableFont_GRAD,XOPQ,XTRA,YOPQ,YTAS,YTDE,YTFI,YTLC,YTUC,opsz,slnt,wdth,wght.ttfRegularRobotoFlex-Regular00000000 11000000-yes✗ (bit 0 not set)
Instance NamenameIDWeight (wght)Slant (slnt)✅ Name-based Detection✅ Slant-based Detection
Thin Italic279100.0-10.0✅ Contains "Italic"✅ slnt < 0
ExtraLight Italic280200.0-10.0✅ Contains "Italic"✅ slnt < 0
Light Italic281300.0-10.0✅ Contains "Italic"✅ slnt < 0
Italic282400.0-10.0✅ Contains "Italic"✅ slnt < 0
Medium Italic283500.0-10.0✅ Contains "Italic"✅ slnt < 0
SemiBold Italic284600.0-10.0✅ Contains "Italic"✅ slnt < 0
Bold Italic285700.0-10.0✅ Contains "Italic"✅ slnt < 0
ExtraBold Italic286800.0-10.0✅ Contains "Italic"✅ slnt < 0
Black Italic287900.0-10.0✅ Contains "Italic"✅ slnt < 0
ExtraBlack Italic2881000.0-10.0✅ Contains "Italic"✅ slnt < 0

4. Two variable fonts

fontTTFFont Subfamily (nameID 2)PostScript Name (nameID 6)fsSelectionfvar.instancesitalic
InterInter-VariableFont_opsz,wght.ttfRegularInter-Regular00000000 11000000no slnt/ital✗ (bit 0 not set)
InterInter-Italic-VariableFont_opsz,wght.ttfItalicInter-Italic00000000 10000001no slnt/ital✓ (bit 0 set)

Note: Inter is exceptionally unusual in that its variable font instances lack PostScript names in the fvar table, unlike most other variable fonts (e.g., Recursive, Noto Sans) which include comprehensive PostScript names for all instances.

See also