# code-block-pro/1.28.0/src/util/fonts.ts

Code Block Pro – Beautiful Syntax Highlighting, version 1.28.0. 30 lines.

- Page: https://pluginprobe.com/plugins/code-block-pro/1.28.0/code/src/util/fonts.ts
- Raw: https://pluginprobe.com/plugins/code-block-pro/1.28.0/raw/src/util/fonts.ts
- Modified: 2026-04-12T13:22:22+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/code-block-pro/1.28.0/code/src/util/fonts.ts#L10-L20`.

```typescript
export const fontFamilyLong = (family: string) => {
	if (!family) return;
	return [
		family.split('.')[0],
		'ui-monospace',
		'SFMono-Regular',
		'Menlo',
		'Monaco',
		'Consolas',
		'monospace',
	].join(',');
};

export const maybeClamp = (size: string, clampFonts: boolean) => {
	if (!size) return;
	if (!clampFonts) return size;
	if (!parseFloat(size)) return size;
	return `clamp(${parseFloat(size) * 16}px, ${size}, ${
		parseFloat(size) * 24
	}px)`;
};

export const getTextWidth = (text: string, font?: string) => {
	const canvas = document.createElement('canvas');
	const context = canvas.getContext('2d');
	if (!context) return 0;
	context.font = font || getComputedStyle(document.body).font;
	return context.measureText(text).width;
};

```
