svglite 2.2.2
CRAN release: 2025-10-21
- Avoid sanitizer error when calculating precision (#198)
- Fix a test bug on newer versions of macOS
svglite 2.2.0
CRAN release: 2025-05-07
- Added support for luminance masking (#174)
- Fixed a bug in calculating text widths when using font features (#175)
- Added support for path stroking and filling (#174)
- Added support for groups along with affine transformation and color blending. No support for Porter-Duff composition as it is porly supported in SVG (#174)
- Added better support for specifying webfonts as embedded in the SVG (#182)
- Added support for glyphs by rendering them as paths or rasters. This means the text is not editable in post-production but it is better than nothing.
svglite 2.1.2
CRAN release: 2023-10-11
- Windows: use libpng included with Rtools on R 4.2 and up.
- Add support for dev.capabilities()
svglite 2.0.0
CRAN release: 2021-02-20
- svglite now uses systemfonts for text metric calculations and font family lookup. 
- svglite can now encode OpenType font features into the CSS if the used font contains registered features 
- svglite now directly encodes raster data into png instead of rendering it through cairo. If the provided raster is smaller than the final requested size it will be resized. 
- SVG’s can now get a top-level id so that style definitions doesn’t spill into the surrounding HTML (#91) 
- Dimensions are now encoded into the top-level - <svg>tag (#90)
- Starting a new page creates a new file if the filename supports it (#98, @vandenman). 
- The inline devices now defaults to the same dimensions as - svglite()(#89)
- Clip defs are now only written if they don’t already exist (#110) 
- Clipping is now defined with outer groups instead of on each element (#109) 
- svglite now uses cpp11 instead of Rcpp (#100) 
- svgz output is now supported natively (#6) 
- Text adjustments are now encoded in css where possible (#107) 
- The use of textLength CSS property can now be turned off (#118) 
- web font imports can now be given when creating an svg (#108) 
- Add scaling argument to devices to control line-width and text scaling (#115) 
- svg files that are being written are now only valid at all times if - always_validis set to- TRUEin the- svglite()call.
- svglite now guards against attempts at writing to the device before a new page has been requested (#126) 
svglite 1.2.3
CRAN release: 2020-02-07
- The radius of circles is no longer expressed in pt (#93, @vandenman). 
- Dimensions smaller than 1 now retain two significant figures (#94, @ilia-kats). 
- @thomasp85 takes over as maintainer 
svglite 1.2.2
CRAN release: 2019-05-17
- Improvements to reproducibility of generated SVGs: Negative zeros are now treated as positive, and the clip ID are now generated from truncated elements. 
- svglite now uses the - polygonSVG element. This ensures that polygons are properly closed (#82).
- Text metrics are now correctly computed for Unicode characters in plotmath expressions (#81). 
svglite 1.2.0
CRAN release: 2016-11-04
New features
- The device functions gain - system_fontsand- user_fontsarguments.
- Two new vignettes: - vignette("fonts")and- vignette("scaling"). The vignette on fonts explains in detail how to use the new fonts arguments and why. The vignette on scaling goes over scaling issues, e.g. when embedding svglite outputs in a web page.
- New - stringSVG()device function for quick testing.
Improvements
- Greatly improves the performance of - svgstring()(#58).
- Clip paths now get a unique identifier to avoid collisions when multiple plots are included in a document (#67). 
- Raster graphics are now correctly cropped (#64) and handle transparency properly. 
- The dimensions of text fields are now hardcoded in the SVGs to prevent alignment issues. 
svglite 1.1.0
CRAN release: 2016-02-09
- Text metrics now converted from points to pixels (#45, #48) - this fixes text alignment issues. 
- Intermediate outputs are always valid SVG (#53). 
- New - svgstring()returns plot as a string (#40, @yixuan).
- Use raster test compatible with older versions of R. 
- Add support for - clip(). This also fixes a number of minor issues with grid graphics (@yixuan, #47 and #49).
- Fix incorrect device size (#50). 
svglite 1.0.0
CRAN release: 2015-12-09
svglite is fully featured svg graphics device that works on all platforms, forked from RSvgDevice. It supports all graphics device features:
- All types of line dashing are supported (#15). All line end and line join styles are supported (#24). 
- Text is now coloured, and uses the same default fonts as R (Arial, Times New Roman, and Courier). Font metrics are computed using the gdtools package so that - plotmath()and- strwidth()now work.
- Transparent colours are now generated with - rgba()rather than using- stroke-opacityand- fill-opacitystyles (#16). NA fills and colours are translated to “none”.
- par(bg)affects the background colour (#8).
- Rasters are supported by embedding base64-encoded pngs in a data url (#2). 
- polypath()is now supported, which also allows the- showtextpackage to render fonts correctly with this device (#36).
We also made a few other tweaks to the rendered SVG:
- Only the - viewBoxattribute of- <svg>is set (not- widthand- height): I’m reasonably certain this makes it easier to use in more places (#12).
- Default styling properties are specified in a global - <style>element: this reduces overall file size, and should make it easier to re-style the output for your own needs.
- You can now only produce a single page per device - previously this worked but produced incorrect output (#5). 
- Output no longer contains dummy - <desc>element (#4)
And added some helper functions: