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

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

- Page: https://pluginprobe.com/plugins/code-block-pro/1.27.5/code/src/util/fonts.ts
- Raw: https://pluginprobe.com/plugins/code-block-pro/1.27.5/raw/src/util/fonts.ts
- Modified: 2023-10-12T00:06:44+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.27.5/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;
};

```
