← Back to all sparks
S

svglite

DESIGN
Velocity0.0

SVG graphics device for R producing lightweight, standards-compliant vector output

svglite caught up to the modern graphics engine, and paid for it in editable text.

svggraphics-devicer-libvector-outputgraphics-enginetypography
Current state
svglite is the lightweight SVG device that replaced the cairo path for R vector output, and its value proposition has always been clean, hand-editable SVG. The 2.x line has spent its releases closing the gap with R's graphics engine: clipping, masking, patterns and gradients in 2.1.0, then groups, affine transforms, colour blending, path stroking and glyph support in 2.2.0. The two releases since are a Fedora compilation fix and a sanitizer error.
Where it's heading
The package is converging on feature parity with what ggplot2 and the graphics engine can now emit, and the seams are showing. Glyph support renders text as paths or rasters, which the release notes concede is not editable in post-production — the exact property svglite exists to provide. Porter-Duff composition was dropped outright because SVG support for it is poor. The direction is fidelity first, editability second where the two conflict.
Prediction
Expect the next feature release to pick up systemfonts' variable font API, and expect the editable-text regression from glyph rendering to be revisited as an opt-in rather than left as the only path.

Recent moves

  1. 9mo ago

    Sanitizer and macOS test fixes

    A sanitizer error in precision calculation and a test that broke on newer macOS. Pure upkeep following the 2.2.0 feature push.

    View source ↗
  2. 1y ago

    Fix Fedora compilation failure

    A single Fedora compilation fix five days after 2.2.0. Toolchain follow-up, nothing user-visible.

    View source ↗
  3. 1y ago

    Groups, masking, paths and glyph rendering land in svglite

    ⚡ SPARK

    The release that brings svglite to parity with the modern graphics engine — groups, affine transforms, colour blending, luminance masking, path stroking and filling, embedded webfonts and glyph rendering. It also marks the point where fidelity starts overriding the package's editable-output premise.

    View source ↗
  4. 2y ago

    Use Rtools libpng on Windows; report dev.capabilities()

    Switches Windows builds to the libpng bundled with Rtools and reports dev.capabilities(). Build plumbing plus a capability declaration.

    View source ↗
  5. 3y ago

    Add cstdint include at CRAN request

    A one-line include fix requested by CRAN. The clearest possible example of this cohort's maintenance being scheduled by other people.

    View source ↗
  6. 4y ago

    Clipping, masking and gradient fills arrive

    The first wave of graphics engine adoption: path clipping, masking, and pattern and gradient fills, plus quoted font family names. Sets up the fuller parity push that arrives three years later in 2.2.0.

    View source ↗