@capsizecss/unpack
Unpack the capsize font metrics directly from a font file.
npm install @capsizecss/unpack
Usage
fromBlob
Takes a file blob and returns the resolved font metrics.
import { fromBlob } from '@capsizecss/unpack';
const metrics = await fromBlob(file);
fromUrl
Takes a url string and returns the resolved font metrics.
import { fromUrl } from '@capsizecss/unpack';
const metrics = await fromUrl(url);
fromFile
Takes a file path string and returns the resolved font metrics.
import { fromFile } from '@capsizecss/unpack';
const metrics = await fromFile(filePath);
Options
All of the above APIs accept an optional second parameter with the following options:
postscriptName
Capsize can extract the metrics for a single font from a TrueType Collection (TTC) file by providing the postscriptName
.
import { fromFile } from '@capsizecss/unpack';
const metrics = await fromFile('AvenirNext.ttc', {
postscriptName: 'AvenirNext-Bold',
});
Font metrics
The font metrics object returned contains the following properties:
Property | Type | Description |
---|
familyName | string | The font’s family name as authored by font creator |
fullName | string | The font’s full name as authored by font creator |
postscriptName | string | The font’s unique PostScript name as authored by font creator |
category | string | The style of the font: serif, sans-serif, monospace, display, or handwriting. |
capHeight | number | The height of capital letters above the baseline |
ascent | number | The height of the ascenders above baseline |
descent | number | The descent of the descenders below baseline |
lineGap | number | The amount of space included between lines |
unitsPerEm | number | The size of the font’s internal coordinate grid |
xHeight | number | The height of the main body of lower case letters above baseline |
xWidthAvg | number | The average width of character glyphs in the font for the selected unicode subset. Calculated based on character frequencies in written text, falling back to the built in xAvgCharWidth from the OS/2 table. |
subsets | { [subset]: { xWidthAvg: number } } | A lookup of the xWidthAvg metric by subset (see supported subsets) |
Thanks
- Devon Govett for creating Fontkit, which does all the heavy lifting of extracting the font metrics under the covers.
- SEEK for giving us the space to do interesting work.
License
MIT.