Skip to content

WebFont/macOS App

Focused font workflows
Build fonts from SVG, subset and convert, then ship web-ready font files

WebFont is a local macOS app for text-to-SVG outlines, building icon and color fonts from SVG artwork, subsetting, converting, and packaging web fonts.


Workflow

Build fonts from SVGs. Generate subsets from text.

WebFont combines text-to-outline export, SVG-based font building, source font replacement, subsetting, conversion, validation, and web package generation in one local macOS workflow.

Create text and glyph artwork

Turn words, phrases, and multi-line text into SVG outlines with every available variable axis, or prepare outlined SVG artwork for icon and web font building. Supported color glyphs keep their color artwork.

Build or edit fonts

Build monochrome or color fonts from SVG glyphs. Rebuild supported imported color glyphs as artwork, or edit a supported static, non-color TrueType source font.

Check and ship outputs

Run Preflight Check, validate generated fonts, then export TTF, WOFF, WOFF2, glyph assets, or a web package with CSS, demo HTML, and metadata.


Capabilities

What the current app can do

Text to SVG Outlines

Turn text into SVG outlines with size, every available variable axis, spacing, wrapping, alignment, and fallback controls. Supported vector color glyphs keep their color artwork, bitmap color glyphs are embedded as PNG, and monochrome artwork uses the chosen fill color. Text to SVG does not export a static font instance.

Words & sentences
All variable axes
Color glyphs
Font Builder

Build monochrome or color fonts from static SVG artwork. Color mode keeps supported fills, strokes, linear/radial gradients, and opacity in COLR/CPAL, with SVG fallback for supported gradient/effect glyphs. Add palettes for light or dark backgrounds, then export TTF, WOFF, WOFF2, or a web package.

Monochrome & color
COLR / CPAL
Web fonts
Source Font Editing

Adding or replacing glyphs while preserving the source font structure is limited to supported static, non-color TrueType fonts. Separately, import supported COLR/SVG glyphs as vector artwork to rebuild a font; unsupported color effects or bitmap imports may fall back to monochrome outlines with a warning.

Add glyphs
Replace Unicode
Stable glyph IDs
Preflight Check

Report Unicode conflicts, duplicate glyph names, empty paths, abnormal SVG sizes, metric issues, unsupported SVG features, and overly complex artwork before export.

Red yellow green
SVG checks
Font metrics
Project Files and Templates

Save .webfontproject packages with embedded source font data, SVG glyphs, build settings, output options, and replacement targets. Export SVG templates with guides before drawing.

.webfontproject
Embedded font data
SVG template
Subset Generation

Create subsets from selected glyphs, pasted text, .txt files, or Unicode presets. Supports TTF, OTF/CFF/CFF2, WOFF, WOFF2, and a selected TTC/OTC face, including variable and color fonts. Export original-outline TTF/OTF, WOFF, and WOFF2, or bake a static instance from the Export panel.

TTF / OTF / WOFF / WOFF2
TTC / OTC face
Static instances
Web Font Conversion

Package or unpack WOFF/WOFF2 while retaining source outlines, variable axes, and color data. Explicit TTF/OTF targets convert supported static TrueType ↔ CFF and variable TrueType (glyf/gvar) ↔ CFF2 fonts, including supported COLR v0/v1 and OpenType-SVG color data. See the limits below.

TTF ↔ OTF
WOFF / WOFF2
Batch conversion
Web Package and Validation

Export font files, @font-face CSS, and demo HTML; Font Builder packages also add metadata.json, glyph previews, and HTML snippets. Color demos include palette controls where supported, and static-instance exports write matching font-weight/stretch/style CSS. Outputs are validated, with decode round trips for web formats; display of color effects depends on the destination browser or app.

CSS + demo HTML
metadata.json
Round-trip checks
Color Glyph Preview and Export

Preview original colors where macOS supports the format; CBDT PNG glyphs also use a built-in bitmap reader. Export PNG/PDF or vector SVG for supported COLR/SVG artwork. Bitmap glyphs and effects without an exact SVG equivalent export as a PNG embedded in SVG.

COLR / SVG colors
Vector SVG where supported
Bitmap fallback
Glyph Asset Export

Browse the glyph grid and export one glyph or a multi-selection as SVG, PNG, or PDF. Exports use the selected size and foreground color; color glyphs keep their colors where supported. Variable-font instance settings do not change glyph asset export.

SVG / PNG / PDF
Single or batch
Size & color

Built For

Real font production jobs

Icon font production

Build icon fonts from outlined SVG symbols, map icons to Unicode, run Preflight Check, and export browser-ready font packages.

Text artwork and lettering

Convert words, phrases, and multi-line copy into real font outlines for logos, docs, handoff, posters, and SVG-based design assets.

Web font optimization

Create subsets from selected glyphs or text, keep needed OpenType features, and ship only the web font formats your product needs.

Font release checks

Validate generated TTF, OTF, WOFF, and WOFF2 outputs, review character coverage and warnings, and inspect a demo page before publishing.


Scope

Clear rules, safer output

WebFont favors explicit behavior over silent changes. Unsupported SVG and font features are reported so you can fix artwork before it becomes a production font.

  • Font Builder requires static outlined SVG artwork. Live text, raster images, masks, filters, scripts, animation, and external resources are unsupported; color mode also rejects patterns and unsupported blending.
  • Editing an existing font while retaining its structure supports only eligible static, non-color TrueType sources. Importing color glyph artwork to rebuild a new font is a separate workflow.
  • Subset one source font or a selected TTC/OTC face at a time. Outputs preserve the original outlines, variable axes, and supported color resources.
  • Text to SVG keeps supported vector color glyphs and embeds bitmap color glyphs as PNG; the fill color applies to monochrome artwork. Its variable-axis controls change the artwork only; it does not produce a static font file.
  • All processing runs locally on the Mac. Font files are not uploaded by the app.
  • Outline conversion keeps glyph IDs and supported COLR v0/v1, CPAL, and OpenType-SVG data. Supported variable fonts retain all axes. Original hinting is removed; curve approximation may change rendering and file size. Bitmap and incompatible layout/variation data are rejected with a reason.
  • Color display depends on renderer support. Supported COLR/SVG glyphs export as vector SVG; bitmap glyphs and effects without an exact SVG equivalent use embedded PNG. Data preservation does not guarantee display in every app.
  • The main glyph grid previews variable fonts at their default instance and identifies axes. In the Export panel, “Keep all axes” exports the variable font, while “Static instance” bakes the current axis values into Font Subset and Web Package outputs; unlisted axes are pinned to their defaults, and the font's name and weight/style metadata are not rewritten.

Conversion Matrix

TTF, OTF & Web Font Conversion Rules

WOFF/WOFF2 packaging changes the container, not the outline type. TTF/OTF (original outlines) restores .ttf for TrueType or .otf for CFF/CFF2. Explicit outline targets support static TrueType ↔ CFF and eligible variable TrueType ↔ CFF2. Matching outlines pass through unchanged. Single and Batch Conversion show specific failure reasons; batch jobs continue and report success/failure totals. Invalid data or format limits can prevent conversion.

Input FormatTarget OptionActual OutputStatusOutline & Conversion Details
TTF
WOFF / WOFF2

.woff / .woff2

Supported

Packages TrueType outlines as a web font. Keeps the outline type, variable axes, and color data.

OTF (CFF/CFF2)
WOFF / WOFF2

.woff / .woff2

Supported

Packages CFF/CFF2 outlines as a web font. Keeps the outline type, variable axes, and color data.

WOFF / WOFF2
TTF/OTF (original outlines)

.ttf

Supported

Restores TrueType outlines as .ttf. Does not change the outline type, and keeps variable axes and color data.

WOFF / WOFF2
TTF/OTF (original outlines)

.otf

Supported

Restores CFF/CFF2 outlines as .otf. Does not change the outline type, and keeps variable axes and color data.

Static TTF
OTF (PostScript outlines)

.otf

Supported (static fonts)

Static TrueType to CFF, including COLR v0/v1 and OpenType-SVG. Keeps glyph IDs, color layers, gradients, and palettes. Elevates quadratic curves to cubic curves and removes hinting.

Static OTF (CFF)
TTF (TrueType outlines)

.ttf

Supported (static fonts)

Static CFF to TrueType, including COLR v0/v1 and OpenType-SVG. Keeps glyph IDs, color layers, gradients, and palettes. Approximates cubic curves with quadratic curves and removes hinting.

Variable TrueType ↔ CFF2
TTF / OTF

.ttf / .otf

Supported with limits

Keeps all axes and supported color data; outline conversion itself does not pin axes. To export a fixed-axis file, use the Export panel's Static instance mode with Font Subset or a web package. Requires 1–16 axes, at most 48 outline variation regions, compatible master contours and solvable variation data. Conversion can still fail validation or size/coordinate limits; CFF2 output can be much larger.

Bitmap color (sbix/CBDT/EBDT)
Outline conversion

—

Not supported

Does not turn bitmap artwork into vector outlines. Use original-outline export or web packaging to keep the bitmaps.

TTC / OTC
Single / Batch Conversion

—

Not supported

Select one face in the main window and create a subset instead.

Unsupported variation data
Change outline type

—

Not supported

VARC outlines, CFF1 with variation axes, CFF2 without fvar, incompatible master contours, unsolvable regions, and fonts exceeding conversion limits cannot change outline type. Use original-outline export or web packaging where supported.

Incompatible layout data
Change outline type

—

Not supported

Some legacy AAT tables and layout records referring to original outline point indices prevent safe conversion. The specific reason is shown.