Skip to main content

createFontToken

Creates a branded font asset descriptor for use in theme definitions. Font tokens decouple font configuration from widget code — themes declare font tokens, and the framework resolves them into useFont calls at build time.

Signature​

import { createFontToken } from '@espcompose/core';
import type { FontToken, FontBpp } from '@espcompose/core';

const token = createFontToken(file: string, size: number, bpp?: FontBpp): FontToken;

Parameters​

ParameterTypeRequiredDescription
filestringYesFont file path (relative to project) or gfonts://FontName for Google Fonts
sizenumberYesFont size in pixels
bpp'1' | '2' | '4' | '8'NoAnti-aliasing bit depth. Defaults to '4'

Bit depth values​

ValueQuality
'1'None (binary, smallest memory footprint)
'2'Basic anti-aliasing
'4'Good anti-aliasing (default)
'8'Best anti-aliasing (largest memory footprint)

Returns​

A branded FontToken object. The brand ensures the framework can distinguish font tokens from plain objects at build time.

Usage in themes​

Font tokens are the standard way to define typography in a theme:

import { createFontToken } from '@espcompose/core';
import type { FontToken } from '@espcompose/core';

interface MyTheme {
fonts: {
title: FontToken;
body: FontToken;
caption: FontToken;
};
}

const roboto = (size: number) => createFontToken('gfonts://Roboto', size);

const lightTheme: MyTheme = {
fonts: {
title: roboto(24),
body: roboto(16),
caption: roboto(12),
},
};

Widgets consume font tokens from the theme rather than calling useFont directly. This keeps font selection centralized and swappable across themes.

  • useFont — the hook that resolves font assets at the component level
  • Theming — how themes use font tokens to define typography