Releases: rafaeltonholo/svg-to-compose
2.2.0
What's Changed
Highlights
Gradle Plugin Parallelism - The Gradle plugin now uses the Gradle Worker API for parallel SVG/XML icon processing, significantly improving build times for projects with many icons. (#181)
AGP 9 Support - The Gradle plugin is now compatible with Android Gradle Plugin 9. (#212)
New Website with Live Playground - A brand-new project website built with Kobweb, featuring a live SVG-to-Compose playground, API documentation, and installation guides. (#230, #231, #242)
CodeEmitter Architecture - Introduced a new CodeEmitter infrastructure, decoupling code generation from the core parsing logic and enabling future support for additional output formats. (#214, #215)
EditorConfig Support - Output indentation now respects your project's .editorconfig settings. (#216)
Bug Fixes
- Gradient transforms - Fixed
gradientTransformnot being applied to gradient coordinates inuserSpaceOnUsemode. (#228) - AVG centerColor - Fixed missing
centerColorin Android Vector Drawable gradient color stop computation. (#277) - Scientific notation - Fixed parsing of uppercase
Ein scientific notation during path normalization. (#252) - Style attribute splitting - Fixed style attributes becoming empty after split. (#162)
- Windows temp files - Fixed temporary file handling on Windows. (#199)
- Float precision - Fixed missing
.toFloat()when materializing icons. (#210) - CLI exclude flag - Added validation for
--excluderegex pattern before use. (#251) - CLI build script - Fixed build-type condition using pipe instead of logical OR. (#250)
- Gradle plugin tasks - Migrated to Gradle incremental task API and fixed
validatePlugins. (#279) - Coroutine bytecode leak - Eliminated Kotlin coroutine bytecode causing
ClassNotFoundExceptionin the Gradle plugin. (#281)
Refactoring
- Migrated internal transformations from
FloatArraytoDoubleArrayfor improved precision. (#207) - Restructured composite build and unified version catalogs. (#276)
- Introduced Metro DI framework. (#211)
Dependency Updates
- Kotlin 2.1.20 -> 2.3.0
- Gradle 8.x -> 9.4.1
- Okio 3.15.0 -> 3.16.4
- Ksoup 0.2.2 -> 0.2.5
- Detekt upgraded to 2.0
- AGP updated to 8.13.x
- Compose BOM updated to 2025.09.00
- JetBrains Compose updated to 1.9.3
- Various AndroidX library updates
New Contributors
- @Godox made their first contribution in #162
- @walterbrebels made their first contribution in #199
- @mvanhorn made their first contribution in #246
- @evanofficial made their first contribution in #263
Full Changelog: 2.1.2...2.2.0
2.1.3
What's Changed
Features
- feat(gradle-plugin): implement Gradle Worker API for parallel SVG/XML icon processing by @rafaeltonholo in #181
Fixes
- Fix: prevent style attribute to be empty after split by @Godox in #162
- Fix temp files on Windows by @walterbrebels in #199
Chores
- Update project dependencies
New Contributors
- @Godox made their first contribution in #162
- @walterbrebels made their first contribution in #199
Full Changelog: 2.1.2...2.1.3
2.1.2
What's Changed
Features
- Add support to org.gradle.configuration-cache by @rafaeltonholo in #156
Fixes
- Fix
IllegalArgumentExceptionwhen the external dependency is not installed
Chores
- Update project dependencies
Full Changelog: 2.1.1...2.1.2
2.1.1
What's Changed
- Fix wrong rounding with double/float values on x/y by @rafaeltonholo in #130
Full Changelog: 2.1.0...2.1.1
2.1.0
What's Changed
Features
- Add support for
<style>tags by @rafaeltonholo in #99
Fixes
- Use parsers transient instances instead of singleton by @rafaeltonholo in #111
- Fix tokenizer not properly handling decimals value and improving token parsing by @rafaeltonholo in #123
Chores
- Move rules computation to SvgRootNode by @rafaeltonholo in #107
- Update project dependencies
Full Changelog: 2.0.1...2.1.0
2.0.1
What's Changed
Fixes
- Fix not considering
<mask>with non-<path>elements and other improvements by @rafaeltonholo in #102
Chores
- update dependency gradle to v8.11.1 by @renovate in #91
- update androidx.lifecycle to v2.8.4 by @renovate in #89
- update dependency com.github.gmazzo.buildconfig:plugin to v5.5.1 by @renovate in #90
- update dependency org.jetbrains.compose to v1.7.1 by @renovate in #86
- update dependency com.vanniktech:gradle-maven-publish-plugin to v0.30.0 by @renovate in #92
- update kotlin monorepo to v2.1.0 by @renovate in #94
- update dependency com.github.ajalt.clikt:clikt to v5 by @renovate in #71
- update dependency androidx.compose:compose-bom to v2024.12.01 by @renovate in #98
- update agp to v8.7.3 by @renovate in #97
- update dependency com.fleeksoft.ksoup:ksoup to v0.2.1 by @renovate in #95
- update dependency com.github.ajalt.clikt:clikt to v5.0.2 by @renovate in #96
Full Changelog: 2.0.0...2.0.1
2.0.0
Introducing svg-to-compose Gradle Plugin
This release builds upon the svg-to-compose CLI tool code, turning it into a library, where you can use it via script as you are used to, or include it into your project, as a KMP library that parsers and generates code for you.
This release sets a big milestone in this project, evolving the project from only a KMP CLI tool to a KMP library, with a native CLI, and a Gradle Plugin.
The new svg-to-compose-gradle-plugin project was designed to simplify and enhance your workflow by automatically converting SVG/XML files into Jetpack Compose ImageVector assets. It adds seamless integration with your build process, enabling you to have a single source of truth for your vectors, which could be shared between teams like design and developers, making vector asset management easier than ever.
Additionally, we have introduced a few more options to the CLI tool such as --exclude, and --map-icon-from-to and removed the deprecated option context-receiver.
Documentation & Feedback
Check out the complete documentation here: svg-to-compose-gradle-plugin.
We value your feedback! If you encounter any issues or have suggestions for additional SVG feature support, please open an issue.
What's Changed
Breaking Changes
- Removed deprecated flags
-cpand--context-providerfrom the CLI tool. - The
--kmpoption, in the CLI, now is used to identify that the output targets KMP. That will change thePreviewimports to use JetBrains instead.
Features
- Introduce the svg-to-compose-gradle-plugin.
- Added Dokka integration.
- Introduced new CLI options for parser configuration:
--exclude: A regex used to exclude some icons from the parsing.--map-icon-name-from-to,--from-to, or--rename: Replace the icon's name first value of this parameter with the second.--silent: Runs the CLI without any output.
See the svg-to-compose documentation for more details.
Bug fixes
- RGB colors to Hex broken when RGB value results in a hex value started with 0.
Refactors
- Enhanced logging capabilities with a new Logger interface.
- Abstracting usage of
okio.FileSystemwithFileManagerinterface for better maintainability. - Refactored temporary file creating logic for better parsing handling.
- Replaced
com.codingfeline.buildkonfig:buildkonfig-gradle-pluginwithcom.github.gmazzo.buildconfig:plugin.
Chores
- Restructured Gradle build scripts to simplify configurations and dependencies.
- Project dependencies upgrades by @renovate in #65, #66, #68, #69, #70, #72, #73, #74, #75, #76, #77, #78, #79, #80, #81, #82, #84, #87, #88, #93
Full Changelog: v1.3.3...2.0.0
v1.3.3
What's Changed
- Fixes for Relative Coordinates, and SVG Rect Node Improvements by @rafaeltonholo in #64
- Dependencies upgrades
Full Changelog: v1.3.2...v1.3.3
v1.3.2
What's Changed
- chore(deps): update dependency com.android.application to v8.4.2 by @renovate in #46
- fix(deps): update dependency androidx.lifecycle:lifecycle-runtime-ktx to v2.8.2 by @renovate in #47
- fix(deps): update dependency androidx.compose:compose-bom to v2024.06.00 by @renovate in #48
- fix(deps): update dependency androidx.lifecycle:lifecycle-runtime-ktx to v2.8.4 by @renovate in #50
- fix(deps): update dependency androidx.activity:activity-compose to v1.9.1 - autoclosed by @renovate in #52
- fix: s2c script ignoring Apple Silicon's cpu other than M1 by @rafaeltonholo in #53
- Fix path parsing not considering scientific notation by @rafaeltonholo in #58
Full Changelog: v1.3.1...v1.3.2
v1.3.1
What's Changed
- Bugfix: Add default fill color when neither fillColor or stroke are present by @rafaeltonholo in #45
Full Changelog: v1.3.0...v1.3.1