Table of Contents

Class FontInfo

Namespace
KernSmith.Font.Models
Assembly
KernSmith.dll

Parsed font metadata: family name, style, vertical metrics, kerning pairs, and OpenType table data.

public sealed class FontInfo
Inheritance
FontInfo
Inherited Members

Properties

Ascender

Maximum ascent above the baseline, in font units.

public required int Ascender { get; init; }

Property Value

int

AvailableCodepoints

All Unicode characters this font can render.

public required IReadOnlyList<int> AvailableCodepoints { get; init; }

Property Value

IReadOnlyList<int>

Descender

Maximum descent below the baseline, in font units (usually negative).

public required int Descender { get; init; }

Property Value

int

FamilyName

Font family name, like "Roboto" or "Arial".

public required string FamilyName { get; init; }

Property Value

string

HasColorGlyphs

True if the font has color glyphs (emoji, color layers via COLR/sbix/CBDT).

public bool HasColorGlyphs { get; init; }

Property Value

bool

Head

Font header table (units-per-em, bounding box, timestamps). Null if missing.

public HeadTable? Head { get; init; }

Property Value

HeadTable

Hhea

Horizontal header (ascender, descender, line gap from hhea). Null if missing.

public HheaTable? Hhea { get; init; }

Property Value

HheaTable

IsBold

True if this is a bold font.

public required bool IsBold { get; init; }

Property Value

bool

IsFixedPitch

True if the font is monospaced (all characters have the same advance width).

public required bool IsFixedPitch { get; init; }

Property Value

bool

IsItalic

True if this is an italic font.

public required bool IsItalic { get; init; }

Property Value

bool

KerningPairs

Kerning pairs (spacing tweaks between specific character pairs like "AV").

public IReadOnlyList<KerningPair> KerningPairs { get; init; }

Property Value

IReadOnlyList<KerningPair>

LineGap

Additional inter-line spacing, in font units.

public required int LineGap { get; init; }

Property Value

int

LineHeight

Total line height: Ascender - Descender + LineGap.

public int LineHeight { get; }

Property Value

int

NamedInstances

Preset variable font styles like "Bold" or "Light". Null for non-variable fonts.

public IReadOnlyList<NamedInstance>? NamedInstances { get; init; }

Property Value

IReadOnlyList<NamedInstance>

Names

Name table strings (family, copyright, PostScript name). Null if missing.

public NameInfo? Names { get; init; }

Property Value

NameInfo

NumGlyphs

Total number of glyphs in the font file.

public required int NumGlyphs { get; init; }

Property Value

int

Os2

OS/2 table data (weight, width, platform-specific metrics). Null if the table is missing.

public Os2Metrics? Os2 { get; init; }

Property Value

Os2Metrics

StyleName

Style name, like "Regular", "Bold Italic".

public required string StyleName { get; init; }

Property Value

string

UnitsPerEm

Design units per em square. Typically 1000 or 2048.

public required int UnitsPerEm { get; init; }

Property Value

int

VariationAxes

Variable font axes like weight and width. Null for non-variable fonts.

public IReadOnlyList<VariationAxis>? VariationAxes { get; init; }

Property Value

IReadOnlyList<VariationAxis>