UNPKG

@capsizecss/metrics

Version:

Font metrics library for system and Google fonts

1,849 lines (1,848 loc) 3.97 MB
/** * Converts the font family name to the correct casing for the relevant metrics import. * * --- * Example usage: * * ```ts * import { fontFamilyToCamelCase } from '@capsizecss/metrics'; * * const familyName = fontFamilyToCamelCase('--apple-system'); // => `appleSystem` * const metrics = await import(`@capsizecss/metrics/${familyName}`); * ``` * --- */ declare function fontFamilyToCamelCase(str: string): string; interface AppleSystemMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { 'italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface ArialMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { '700': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '700italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface BlinkMacSystemFontMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { 'italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface BrushScriptMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface CourierNewMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { '700': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '700italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface GeorgiaMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { '700': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '700italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface HelveticaMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { '300': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '700': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '300italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '700italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface HelveticaNeueMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { '100': { familyName: string; fullName: string; postscriptName: string; category: string; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '200': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '300': { familyName: string; fullName: string; postscriptName: string; category: string; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '500': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '700': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '100italic': { familyName: string; fullName: string; postscriptName: string; category: string; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '200italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '300italic': { familyName: string; fullName: string; postscriptName: string; category: string; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '500italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '700italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface LucidaGrandeMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { '700': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface SegoeUIMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { '300': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '350': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '600': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '700': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '900': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '300italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '350italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '600italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '700italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '900italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface TahomaMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { '700': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface TimesNewRomanMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { '700': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '700italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface TrebuchetMSMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { '700': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '700italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface VerdanaMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { '700': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '700italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface _42dotSansMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { '300': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '500': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '600': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '700': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '800': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface ABeeZeeMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { 'italic': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface AbelMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface AbhayaLibreMetrics { familyName: string; fullName: string; postscriptName: string; category: string; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { '500': { familyName: string; fullName: string; postscriptName: string; category: string; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '600': { familyName: string; fullName: string; postscriptName: string; category: string; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '700': { familyName: string; fullName: string; postscriptName: string; category: string; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; '800': { familyName: string; fullName: string; postscriptName: string; category: string; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface AboretoMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface AbrilFatfaceMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface AbyssinicaSILMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface AclonicaMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface AcmeMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface ActorMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface AdaminaMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface ADLaMDisplayMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { 'regular': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; }; }; } interface AdventProMetrics { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number; unitsPerEm: number; xHeight: number; xWidthAvg: number; subsets: Record<'latin' | 'thai', { xWidthAvg: number; }>; variants: { '100': { familyName: string; fullName: string; postscriptName: string; category: string; capHeight: number; ascent: number; descent: number; lineGap: number;