---
url: /api/formats/icon-font/src/functions/buildIconFont.md
---
[pantoken-root](../../../../index.md) / [formats/icon-font/src](../index.md) / buildIconFont

# Function: buildIconFont()

> **buildIconFont**(`options?`): `Promise`<[`IconFontResult`](../interfaces/IconFontResult.md)>

Beta

Build the icon font.

## Parameters

### options?

[`BuildIconFontOptions`](../interfaces/BuildIconFontOptions.md) = `{}`

[BuildIconFontOptions](../interfaces/BuildIconFontOptions.md).

## Returns

`Promise`<[`IconFontResult`](../interfaces/IconFontResult.md)>

The [IconFontResult](../interfaces/IconFontResult.md).

## Examples

**Build the full font and write the artifacts**

```ts
import { buildIconFont } from "@pantoken/icon-font";
import { writeFileSync } from "node:fs";

const font = await buildIconFont();
writeFileSync("PanTokens.woff2", font.woff2);
writeFileSync("PanTokens.ttf", font.ttf);
writeFileSync("icons.css", font.css);
```

**A custom font name and a subset of icons from another theme**

```ts
import { buildIconFont } from "@pantoken/icon-font";

const font = await buildIconFont({
  fontName: "Instructure",
  icons: ["arrow-left", "check-mark"],
  theme: "canvas",
});
font.codepoints; // { "arrow-left": "e000", "check-mark": "e001" }
```
