# svg-to-compose

> Convert SVG and Android Vector Drawables (XML) into Jetpack Compose ImageVector code. CLI, Gradle plugin, and online playground. Kotlin Multiplatform supported.

- **URL**: https://www.freshcrate.ai/projects/svg-to-compose
- **Author**: rafaeltonholo
- **Category**: Databases
- **Latest version**: `2.2.1` (2026-05-07)
- **License**: MIT
- **Source**: https://github.com/rafaeltonholo/svg-to-compose
- **Homepage**: https://www.svgtocompose.com/
- **Language**: Kotlin
- **GitHub**: 200 stars, 10 forks
- **Registry**: github
- **Tags**: `android`, `avd`, `cli`, `code-generation`, `compose-multiplatform`, `gradle-plugin`, `imagevector`, `jetpack-compose`, `kotlin`

## Description

Convert SVG and Android Vector Drawables (XML) into Jetpack Compose ImageVector code. CLI, Gradle plugin, and online playground. Kotlin Multiplatform supported.

## Recent releases

| Version | Date | Urgency | Changes |
| --- | --- | --- | --- |
| `2.2.1` | 2026-05-07 | High | # What's Changed  ## Bug Fixes  - **Radial gradient `href` resolution** - Fixed `<radialGradient>` elements that referenced another gradient via `href` or `xlink:href` reading color stops from their own empty child list, producing invisible gradients. The resolver now follows the reference chain, merges inherited attributes, supports both SVG2 plain `href` and legacy `xlink:href`, and detects circular references with a clear error instead of `StackOverflowError`. ([#341](https://github.com/r |
| `2.2.0` | 2026-04-03 | High | # 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](https://github.com/rafaeltonholo/svg-to-compose/pull/181))  **AGP 9 Support** - The Gradle plugin is now compatible with Android Gradle Plugin 9. ([#212](https://github.com/rafaeltonholo/svg-to-compose/pull/212))  **New Website with Live Playground** - A brand-new p |
| `2.1.3` | 2026-03-08 | Low | ## What's Changed ### Features * feat(gradle-plugin): implement Gradle Worker API for parallel SVG/XML icon processing by @rafaeltonholo in https://github.com/rafaeltonholo/svg-to-compose/pull/181  ### Fixes * Fix: prevent style attribute to be empty after split by @Godox in https://github.com/rafaeltonholo/svg-to-compose/pull/162 * Fix temp files on Windows by @walterbrebels in https://github.com/rafaeltonholo/svg-to-compose/pull/199  ### Chores * Update project dependencies  ## New |
| `2.1.2` | 2025-06-28 | Low | ## What's Changed ### Features * Add support to org.gradle.configuration-cache by @rafaeltonholo in https://github.com/rafaeltonholo/svg-to-compose/pull/156  ### Fixes * Fix `IllegalArgumentException` when the external dependency is not installed  ### Chores * Update project dependencies  **Full Changelog**: https://github.com/rafaeltonholo/svg-to-compose/compare/2.1.1...2.1.2 |
| `2.1.1` | 2025-03-06 | Low | ## What's Changed * Fix wrong rounding with double/float values on x/y by @rafaeltonholo in https://github.com/rafaeltonholo/svg-to-compose/pull/130   **Full Changelog**: https://github.com/rafaeltonholo/svg-to-compose/compare/2.1.0...2.1.1 |
| `2.1.0` | 2025-02-17 | Low | ## What's Changed ### Features * Add support for `<style>` tags by @rafaeltonholo in https://github.com/rafaeltonholo/svg-to-compose/pull/99 ### Fixes * Use parsers transient instances instead of singleton by @rafaeltonholo in https://github.com/rafaeltonholo/svg-to-compose/pull/111 * Fix tokenizer not properly handling decimals value and improving token parsing by @rafaeltonholo in https://github.com/rafaeltonholo/svg-to-compose/pull/123 ### Chores * Move rules computation to SvgRootNode |
| `2.0.1` | 2024-12-18 | Low | ## What's Changed ### Fixes * Fix not considering `<mask>` with non-`<path>` elements and other improvements by @rafaeltonholo in https://github.com/rafaeltonholo/svg-to-compose/pull/102  ### Chores * update dependency gradle to v8.11.1 by @renovate in https://github.com/rafaeltonholo/svg-to-compose/pull/91 * update androidx.lifecycle to v2.8.4 by @renovate in https://github.com/rafaeltonholo/svg-to-compose/pull/89 * update dependency com.github.gmazzo.buildconfig:plugin to v5.5.1 by @ren |
| `2.0.0` | 2024-11-26 | Low | # 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 |
| `v1.3.3` | 2024-09-08 | Low | ## What's Changed * Fixes for Relative Coordinates, and SVG Rect Node Improvements by @rafaeltonholo in https://github.com/rafaeltonholo/svg-to-compose/pull/64 * Dependencies upgrades   **Full Changelog**: https://github.com/rafaeltonholo/svg-to-compose/compare/v1.3.2...v1.3.3 |
| `v1.3.2` | 2024-08-17 | Low | ## What's Changed * chore(deps): update dependency com.android.application to v8.4.2 by @renovate in https://github.com/rafaeltonholo/svg-to-compose/pull/46 * fix(deps): update dependency androidx.lifecycle:lifecycle-runtime-ktx to v2.8.2 by @renovate in https://github.com/rafaeltonholo/svg-to-compose/pull/47 * fix(deps): update dependency androidx.compose:compose-bom to v2024.06.00 by @renovate in https://github.com/rafaeltonholo/svg-to-compose/pull/48 * fix(deps): update dependency android |

## Citation

- HTML: https://www.freshcrate.ai/projects/svg-to-compose
- Markdown: https://www.freshcrate.ai/projects/svg-to-compose.md
- Dependencies JSON: https://www.freshcrate.ai/api/projects/svg-to-compose/deps

_Generated by freshcrate.ai. Indexes github releases for AI-agent ecosystem packages._
