Implementation:Microsoft Playwright DefaultFontFamilies
| Knowledge Sources | |
|---|---|
| Domains | Chromium, Fonts |
| Last Updated | 2026-02-12 00:00 GMT |
Overview
Concrete tool for defining platform-specific default font family mappings for Chromium browsers provided by the Playwright library.
Description
The `defaultFontFamilies` module exports the `platformToFontFamilies` constant, a mapping from platform names ('linux', 'mac', 'win') to `Protocol.Page.setFontFamiliesParameters` objects. Each platform configuration specifies default fonts for standard, fixed, serif, sans-serif, cursive, and fantasy font families. The Mac and Windows configurations include additional `forScripts` entries for CJK (Japanese, Korean, Simplified Chinese, Traditional Chinese) script-specific font families. This map is auto-generated from Chromium source code by the `generate_chromium_default_font_families.js` utility script.
Usage
Use DefaultFontFamilies when Playwright sets up a new Chromium page to ensure consistent font rendering across platforms via CDP's `Page.setFontFamilies` command.
Code Reference
Source Location
- Repository: Microsoft_Playwright
- File: packages/playwright-core/src/server/chromium/defaultFontFamilies.ts
Signature
export const platformToFontFamilies: {
[key in 'linux' | 'mac' | 'win']: Protocol.Page.setFontFamiliesParameters
};
Import
import { platformToFontFamilies } from '../server/chromium/defaultFontFamilies';
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| (none) | N/A | N/A | This is a constant data module with no runtime inputs |
Outputs
| Name | Type | Description |
|---|---|---|
| platformToFontFamilies | Record<string, setFontFamiliesParameters> | Platform-to-font-families mapping for linux, mac, and win |
Usage Examples
import { platformToFontFamilies } from '../server/chromium/defaultFontFamilies';
// Get font families for current platform
const platform = process.platform === 'darwin' ? 'mac' : process.platform === 'win32' ? 'win' : 'linux';
const fontFamilies = platformToFontFamilies[platform];
await crSession.send('Page.setFontFamilies', fontFamilies);
// Sets standard: 'Times New Roman', fixed: 'Monospace', etc. on Linux