Skip to content

Full-bleed source art silently produces oversized glyphs #27

Description

@omar-hanafy

A pack whose SVGs have no internal margin builds as fully healthy, but renders noticeably larger than Material icons at the same size:. Nothing in the audit, build, or report signals it.

Repro: three 16x16 SVGs whose artwork spans the full viewBox, taken from ilikerobots/polyicon#92.

Result: status: ok, quality: lossless, issueCount: 0, skippedIconCount: 0.

Measured:

  • every glyph ink height is 100.0% of em
  • MaterialIcons-Regular median ink height is 77.5% across 8,629 glyphs
  • so these render roughly 1.29x larger than a typical Material icon at the same nominal size

The conversion itself is correct. Scaling by viewBox is the right behavior, and the geometry is faithful: a pixel diff of each glyph against its source SVG differs only at antialiasing edges (under 1.1% of pixels, max delta 47/255). The gap is that there is no signal the pack will look wrong once it is used in a Flutter app next to Material icons.

The data needed to detect this is already in report v3: glyphs[].fontBounds together with font.unitsPerEm.

Note that a global padding only corrects a pack that is uniformly full-bleed. It scales every glyph by the same factor, so it cannot normalize a pack that mixes full-bleed art with already-padded art. Verified on a mixed pack of 12: at padding: 0.08333 the full-bleed icons land at 83.4% while the already-padded ones drop to 62.4%.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions