Glyph bounds are not font layout metrics
Use tails, empty outlines and composite transforms to preserve complete standalone SVG assets without treating declared metrics as effective font layout.
What a clipped tail tells you
The author described a tail visible in the font but clipped in the exported SVG and asked for complete bounds without changing the font. This establishes an asset-bounds task, without proving that ascent/descent, hmtx or a particular FontForge version caused it; the complete original font was not provided.
For sample ID2 the curve extends from y=-900 to about402.083333, while stored control-point maximum is1600 and global ascent/descent are700/-200. Curve extrema, control-point bounds and font-wide line metrics answer different questions and cannot substitute for one another.
Three bounds and one declared metric
SVG retains the original glyf design grid rather than moving xMin automatically to the hmtx left side bearing. Declared metrics remain available so the consumer can choose how assets meet layout. Scale, reflection, shear, nested composites and implied quadratic points must all participate in bounds.
| Field | Actual meaning | Does not establish |
|---|---|---|
| storedControlBounds | Stored glyf control-point bbox | Actual quadratic extrema |
| bbox | Complete expanded-curve extrema; null for empty outline | Font line height or layout area |
| viewBox | Y inversion, padding and outward numerical guard | Lossless numerical operations or pixel rendering |
| advanceWidth / leftSideBearing | Original hmtx declarations | Effective hinted/USE_MY_METRICS layout |
Empty outlines and uncovered mappings are different states
Space or .notdef may be valid but have no outline:emptyOutline=true,bbox=null,commands=[], with no SVG path and a max(1,advance)×1 canvas. An uncovered code point instead has covered=false and never automatically chooses .notdef or a synthesized SVG.
Preferred Unicode records and finite Apple maps determine code-point requests. Mac Arabic/Hebrew direction or font variants cannot simply be stripped or replaced with ISO tables; absent context is explicitly Unsupported, with confirmed glyph IDs as an alternative.
Hand complete artifacts to the next step
Use the complete exported curves when placing an outline asset, and retain the declared metrics separately when a later layout step needs them. The bounded interface preview helps inspect a request; the downloaded ZIP is the source for every selected glyph and mapping status.
- Use a supported static one-face TTF and decimal IDs or U+ code points; Unsupported formats are not automatically converted.
- Read every SVG and report.json inside ZIP; the table has the first200 rows, long cells first2,000 UTF-16 units, and copy is an explicit summary above20,000 characters.
- Limits of16MiB input,2,000 selectors/glyphs,200k commands/points/visits,depth32,32MiB logical and33,766,552B actual ZIP apply together; dimensions do not guarantee each other.
- Instructions are not executed; fonts are not installed/rewritten and shaping,kerning,rasterization or font-integrity certification are outside scope. Errors/cancellation publish no partial ZIP; recover with the same corrected original.
References
- Complete glyph SVG asset demand
Lance Pollard’s first-person clipping/unchanged-font task; no original font attached and no reproduction claim.
- Apple post glyph-name formats
Name-format correctness reference, not demand evidence.
- Unicode Apple character mappings
Complete official tables/notices; Arabic/Hebrew direction,multi-scalar and variants use only the explicit finite profile.
Tools in this category
Expand a tool to see its steps, options and supported formats, then open its workspace.
Static font glyph SVG exportSelect glyph IDs or code points from a supported static TrueType font and export SVGs with complete curve bounds plus a JSON report of names, declared metrics and mapping status.
A complete outline asset needs curve bounds rather than only font line metrics. Confirm the supported format and selectors, inspect uncovered mappings, then download the complete ZIP.
Steps
- Choose one supported static TTF; its original bytes remain unchanged.
- Enter glyph IDs or Unicode code points and an integer padding. The union of the lists determines exported glyphs.
- Check selected glyphs, uncovered code points and metric scope; download ZIP for every SVG and the complete JSON.
Available options
- Glyph ID list
- Enter as needed
Decimal IDs separated by whitespace or commas, e.g.2,3. Leave blank to use code points.
- Unicode code-point list
- U+0041
For example U+0041 U+1F600 or65; absent mappings remain visibly uncovered.
- SVG padding (font units)
- 0
Integer0–4,096; padding applies to curve bounds without changing the font or declared metrics.
Capabilities and limits
- One-face sfnt0x00010000 static TTF only: glyf quadratic outlines and bounded acyclic XY-affine composites; one input up to16MiB. CFF/CFF2, TTC, WOFF/WOFF2, variable/color/bitmap/SVG-in-font tables, point-aligned composites and cmap2/8/10/14 are Unsupported.
- Glyph IDs are nonnegative decimal integers; code points are decimal or U+ followed by1–6 hexadecimal digits, separated by whitespace or commas. The combined lists allow2,000 entries, with no duplicates within either list and no range shorthand. Code points must be Unicode scalars; a missing or glyph0 mapping is explicitly uncovered, without a replacement SVG. Blank omits that list; provide at least one selector.
- At most2,000 selected glyphs,200,000 M/L/Q/Z commands,200,000 expanded points,200,000 component visits and composite depth32. Padding is an integer0–4,096 font units. Complete SVG+JSON combined≤32MiB;2,000 SVGs plus report.json are2,001 members, with STORE ZIP≤33,766,552 bytes. Combined inputs can reach another guard first.
- Coordinates retain the original glyf design grid and invert the SVG Y axis. Curve bounds are float64-derived with an explicit outward numeric guard, not lossless numerical arithmetic. Advance/lsb are declared hmtx values; USE_MY_METRICS, hinting, shaping, kerning and raster layout are not applied. Font instructions are never executed; this is not a full font-checksum or installed-font integrity audit.
- cmap0/4/6/12/13 uses the finite preferred Unicode-record order. Mac lookup supports only the declared Apple maps and language/encoding pairs, without ISO substitution or an unknown-language fallback. Directional, duplicate, multi-scalar or font-variant Arabic/Hebrew ambiguity is atomically Unsupported; valid glyph IDs remain available. Names support post1/2/2.5/3; post4/unknown formats, non-ASCII custom names, reserved indices and XML-illegal controls are Unsupported. TAB/LF/CR names remain intact; SVG writes CR as .
- The table previews the first200 glyphs and the first2,000 UTF-16 units of long cells. Copy is an explicit summary when JSON exceeds20,000 characters; ZIP report.json and every SVG, command, declared metric and code-point status remain complete. An empty outline retains emptyOutline, bbox=null and an SVG without a path; no curves are invented.