Unpack capsize font metrics from fonts
npm install @capsizecss/unpack
Unpack the capsize font metrics directly from a font file.
``bash`
npm install @capsizecss/unpack
- Usage
- fromBuffer
- fromBlob
- fromUrl
- fromFile
- Options
- postscriptName
- Font Metrics
Takes a buffer and returns the resolved font metrics.
`ts
import { fromBuffer } from '@capsizecss/unpack';
const metrics = await fromBuffer(buffer);
`
Takes a file blob and returns the resolved font metrics.
`ts
import { fromBlob } from '@capsizecss/unpack';
const metrics = await fromBlob(file);
`
Takes a url string and returns the resolved font metrics.
`ts
import { fromUrl } from '@capsizecss/unpack';
const metrics = await fromUrl(url);
`
Takes a file path string and returns the resolved font metrics.
`ts
import { fromFile } from '@capsizecss/unpack/fs';
const metrics = await fromFile(filePath);
`
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.
`ts
import { fromFile } from '@capsizecss/unpack';
const metrics = await fromFile('AvenirNext.ttc', {
postscriptName: 'AvenirNext-Bold',
});
`
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. |xWidthAvg` metric by subset (see [supported subsets]) |
| subsets | {
[subset]: { xWidthAvg: number }
} | A lookup of the
[based on character frequencies in written text]: ../metrics/README.md#how-xwidthavg-is-calculated
[supported subsets]: ../metrics/README.md#subsets
- Devon Govett for creating Fontkit. A fork of Fontkit does all the heavy lifting of extracting the font metrics under the covers.
- SEEK for giving us the space to do interesting work.
MIT.