Text measurement utilities for browser and fibjs environments.
Provides a pluggable TextMeasureProvider interface for measuring text dimensions (width, height, line count) across different runtimes — DOM in the browser, headless WebView in fibjs.
npm install @markdown-viewer/text-measureIn fibjs, the WebView-based text measurement provider is automatically configured on import — no manual setup needed.
import { measureText } from '@markdown-viewer/text-measure';
const { width, height } = measureText('Hello World', 14, 'Arial');Measure text with wrapping and line information:
import { measureTextLayout } from '@markdown-viewer/text-measure';
const layout = measureTextLayout('Long text...', 14, 'Arial', 'normal', 'normal', 200);
// => { width, height, lineCount, lineHeight }| Function | Description |
|---|---|
measureText(text, fontSize, fontFamily, ...) |
Measure text dimensions |
measureMultilineText(text, fontSize, fontFamily, ...) |
Measure multi-line text |
measureTextLayout(text, fontSize, fontFamily, ..., containerWidth) |
Measure with wrapping/layout info |
isBrowserMeasurementAvailable() |
Check if DOM measurement is available |
| Export | Description |
|---|---|
DEFAULT_FONT_FAMILY |
Default font family ('Arial, Helvetica, sans-serif') |
setDefaultFontFamily(family) |
Override the default font family |
TextLayoutResult—{ width, height, lineCount, lineHeight }
MIT