
Security News
Meet Socket at Black Hat Europe and BSides London 2025
Socket is heading to London! Stop by our booth or schedule a meeting to see what we've been working on.
@mapbox/tiny-sdf
Advanced tools
TinySDF is a tiny and fast JavaScript library for generating SDF (signed distance field) from system fonts on the browser using Canvas 2D and Felzenszwalb/Huttenlocher distance transform. This is very useful for rendering text with WebGL.
Create a TinySDF for drawing glyph SDFs based on font parameters:
const tinySdf = new TinySDF({
fontSize: 24, // Font size in pixels
fontFamily: 'sans-serif', // CSS font-family
fontWeight: 'normal', // CSS font-weight
fontStyle: 'normal', // CSS font-style
buffer: 3, // Whitespace buffer around a glyph in pixels
radius: 8, // How many pixels around the glyph shape to use for encoding distance
cutoff: 0.25 // How much of the radius (relative) is used for the inside part of the glyph
});
const glyph = tinySdf.draw('泽'); // draw a single character
Returns an object with the following properties:
data is a Uint8ClampedArray array of alpha values (0–255) for a width x height grid.width: Width of the returned bitmap.height: Height of the returned bitmap.glyphTop: Maximum ascent of the glyph from alphabetic baseline.glyphLeft: Currently hardwired to 0 (actual glyph differences are encoded in the rasterization).glyphWidth: Width of the rasterized portion of the glyph.glyphHeight Height of the rasterized portion of the glyph.glyphAdvance: Layout advance.TinySDF is provided as a ES module, so it's only supported on modern browsers, excluding IE.
<script type="module">
import TinySDF from 'https://cdn.skypack.dev/@mapbox/tiny-sdf';
...
</script>
In Node, you can't use require — only import in ESM-capable versions (v12.15+):
import TinySDF from '@mapbox/tiny-sdf';
npm test # run tests
npm start # start server for the demo page
This implementation is licensed under the BSD 2-Clause license. It's based directly on the algorithm published in the Felzenszwalb/Huttenlocher paper, and is not a port of the existing C++ implementation provided by the paper's authors.
opentype.js is a JavaScript library for parsing and working with OpenType fonts. While it does not generate SDFs directly, it can be used in conjunction with other libraries to extract font glyphs and generate SDFs from them.
FAQs
Browser-side SDF font generator
The npm package @mapbox/tiny-sdf receives a total of 2,482,427 weekly downloads. As such, @mapbox/tiny-sdf popularity was classified as popular.
We found that @mapbox/tiny-sdf demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 28 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Socket is heading to London! Stop by our booth or schedule a meeting to see what we've been working on.

Security News
OWASP’s 2025 Top 10 introduces Software Supply Chain Failures as a new category, reflecting rising concern over dependency and build system risks.

Research
/Security News
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.